Face Generation

In this project, you'll use generative adversarial networks to generate new images of faces.

Get the Data

You'll be using two datasets in this project:

  • MNIST
  • CelebA

Since the celebA dataset is complex and you're doing GANs in a project for the first time, we want you to test your neural network on MNIST before CelebA. Running the GANs on MNIST will allow you to see how well your model trains sooner.

If you're using FloydHub, set data_dir to "/input" and use the FloydHub data ID "R5KrjnANiKVhLWAkpXhNBe".

In [1]:
data_dir = './data'

# FloydHub - Use with data ID "R5KrjnANiKVhLWAkpXhNBe"
#data_dir = '/input'


"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import helper

helper.download_extract('mnist', data_dir)
helper.download_extract('celeba', data_dir)
Found mnist Data
Found celeba Data

Explore the Data

MNIST

As you're aware, the MNIST dataset contains images of handwritten digits. You can view the first number of examples by changing show_n_images.

In [2]:
show_n_images = 25

"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
%matplotlib inline
import os
from glob import glob
from matplotlib import pyplot

mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'mnist/*.jpg'))[:show_n_images], 28, 28, 'L')
pyplot.imshow(helper.images_square_grid(mnist_images, 'L'), cmap='gray')
Out[2]:
<matplotlib.image.AxesImage at 0x7f842fbed1d0>

CelebA

The CelebFaces Attributes Dataset (CelebA) dataset contains over 200,000 celebrity images with annotations. Since you're going to be generating faces, you won't need the annotations. You can view the first number of examples by changing show_n_images.

In [3]:
show_n_images = 25

"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'img_align_celeba/*.jpg'))[:show_n_images], 28, 28, 'RGB')
pyplot.imshow(helper.images_square_grid(mnist_images, 'RGB'))
Out[3]:
<matplotlib.image.AxesImage at 0x7f842fb28e10>

Preprocess the Data

Since the project's main focus is on building the GANs, we'll preprocess the data for you. The values of the MNIST and CelebA dataset will be in the range of -0.5 to 0.5 of 28x28 dimensional images. The CelebA images will be cropped to remove parts of the image that don't include a face, then resized down to 28x28.

The MNIST images are black and white images with a single color channel while the CelebA images have 3 color channels (RGB color channel).

Build the Neural Network

You'll build the components necessary to build a GANs by implementing the following functions below:

  • model_inputs
  • discriminator
  • generator
  • model_loss
  • model_opt
  • train

Check the Version of TensorFlow and Access to GPU

This will check to make sure you have the correct version of TensorFlow and access to a GPU

In [4]:
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
from distutils.version import LooseVersion
import warnings
import tensorflow as tf

# Check TensorFlow Version
assert LooseVersion(tf.__version__) >= LooseVersion('1.0'), 'Please use TensorFlow version 1.0 or newer.  You are using {}'.format(tf.__version__)
print('TensorFlow Version: {}'.format(tf.__version__))

# Check for a GPU
if not tf.test.gpu_device_name():
    warnings.warn('No GPU found. Please use a GPU to train your neural network.')
else:
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
TensorFlow Version: 1.1.0
Default GPU Device: /gpu:0

Input

Implement the model_inputs function to create TF Placeholders for the Neural Network. It should create the following placeholders:

  • Real input images placeholder with rank 4 using image_width, image_height, and image_channels.
  • Z input placeholder with rank 2 using z_dim.
  • Learning rate placeholder with rank 0.

Return the placeholders in the following the tuple (tensor of real input images, tensor of z data)

In [5]:
import problem_unittests as tests

def model_inputs(image_width, image_height, image_channels, z_dim):
    """
    Create the model inputs
    :param image_width: The input image width
    :param image_height: The input image height
    :param image_channels: The number of image channels
    :param z_dim: The dimension of Z
    :return: Tuple of (tensor of real input images, tensor of z data, learning rate)
    """
    # TODO: Implement Function
    #return None, None, None
    inputs_real = tf.placeholder(tf.float32, (None, image_width, image_height,  image_channels), name='input_real')
    inputs_z = tf.placeholder(tf.float32, (None, z_dim), name='input_z')
    learning_rate = tf.placeholder(tf.float32, name='learning_rate')
    return inputs_real, inputs_z, learning_rate
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_inputs(model_inputs)
Tests Passed

Discriminator

Implement discriminator to create a discriminator neural network that discriminates on images. This function should be able to reuse the variables in the neural network. Use tf.variable_scope with a scope name of "discriminator" to allow the variables to be reused. The function should return a tuple of (tensor output of the discriminator, tensor logits of the discriminator).

In [6]:
def discriminator(images, reuse=False):
    """
    Create the discriminator network
    :param images: Tensor of input image(s)
    :param reuse: Boolean if the weights should be reused
    :return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)
    """
    # TODO: Implement Function
    #return None, None
    with tf.variable_scope('discriminator', reuse=reuse):
        # Input layer is 28x28x3
        images1 = tf.layers.conv2d(images, 64, 5, strides=2, padding='same')
        relu1 = tf.maximum(0.2 * images1, images1)
        # 14x14x64
        
        images2 = tf.layers.conv2d(relu1, 128, 5, strides=2, padding='same')
        bn2 = tf.layers.batch_normalization(images2, training=True)
        relu2 = tf.maximum(0.2 * bn2, bn2)
        # 7x7x128
        
        #this gives error:
        #InvalidArgumentError (see above for traceback): Input to reshape is a tensor with 131072 values, but the requested shape requires a multiple of 12544
         #[[Node: discriminator/Reshape = Reshape[T=DT_FLOAT, Tshape=DT_INT32, _device="/job:localhost/replica:0/task:0/gpu:0"](discriminator/Maximum_2, discriminator/Reshape/shape)]]
        images3 = tf.layers.conv2d(relu2, 256, 1, strides=2, padding='same')
        bn3 = tf.layers.batch_normalization(images3, training=True)
        relu3 = tf.maximum(0.2 * bn3, bn3)
        # 7x7x256

        # Flatten it
        flat = tf.reshape(relu2, (-1, 7*7*256))
        logits = tf.layers.dense(flat, 1)
        out = tf.sigmoid(logits)
        
        return out, logits
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_discriminator(discriminator, tf)
Tests Passed

Generator

Implement generator to generate an image using z. This function should be able to reuse the variables in the neural network. Use tf.variable_scope with a scope name of "generator" to allow the variables to be reused. The function should return the generated 28 x 28 x out_channel_dim images.

In [7]:
def generator(z, out_channel_dim, is_train=True):
    """
    Create the generator network
    :param z: Input z
    :param out_channel_dim: The number of channels in the output image
    :param is_train: Boolean if generator is being used for training
    :return: The tensor output of the generator
    """
    # TODO: Implement Function
    #return None
    with tf.variable_scope('generator', reuse = not is_train):
        alpha = 0.10
        keep_prob = 1
        # First fully connected layer
        x1 = tf.layers.dense(z, 3*3*512)
        
        x1 = tf.reshape(x1, (-1, 3, 3, 512))
        x1 = tf.layers.batch_normalization(x1, training=is_train)
        x1 = tf.maximum(alpha * x1, x1)
        # 3x3x1024 now
        
        x2 = tf.layers.conv2d_transpose(x1, 256, 5, strides=1, padding='valid')
        x2 = tf.layers.batch_normalization(x2, training=is_train)
        x2 = tf.maximum(alpha * x2, x2)
        dp2 = tf.nn.dropout(x2, keep_prob)
        # 7x7x512 now
        
        x3 = tf.layers.conv2d_transpose(dp2, 128, 5, strides=2, padding='same')
        x3 = tf.layers.batch_normalization(x3, training=is_train)
        x3 = tf.maximum(alpha * x3, x3)
        dp3 = tf.nn.dropout(x3, keep_prob)
        # 7x7x128 now
        
        # Output layer
        logits = tf.layers.conv2d_transpose(dp3, out_channel_dim, 5, strides=2, padding='same')
        # 28x28x3 now
        
        out = tf.tanh(logits)
    
    return out
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_generator(generator, tf)
Tests Passed

Loss

Implement model_loss to build the GANs for training and calculate the loss. The function should return a tuple of (discriminator loss, generator loss). Use the following functions you implemented:

  • discriminator(images, reuse=False)
  • generator(z, out_channel_dim, is_train=True)
In [8]:
def model_loss(input_real, input_z, out_channel_dim):
    """
    Get the loss for the discriminator and generator
    :param input_real: Images from the real dataset
    :param input_z: Z input
    :param out_channel_dim: The number of channels in the output image
    :return: A tuple of (discriminator loss, generator loss)
    """
    # TODO: Implement Function
    #return None, None
    smooth = 0.9

    g_model = generator(input_z, out_channel_dim, is_train=True)
    d_model_real, d_logits_real = discriminator(input_real)
    d_model_fake, d_logits_fake = discriminator(g_model, reuse=True)

    d_loss_real = tf.reduce_mean(
        tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_model_real)*(1 - smooth)))
    d_loss_fake = tf.reduce_mean(
    tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))
    g_loss = tf.reduce_mean(
    tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))
    d_loss = d_loss_real + d_loss_fake

    return d_loss, g_loss
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_loss(model_loss)
Tests Passed

Optimization

Implement model_opt to create the optimization operations for the GANs. Use tf.trainable_variables to get all the trainable variables. Filter the variables with names that are in the discriminator and generator scope names. The function should return a tuple of (discriminator training operation, generator training operation).

In [9]:
def model_opt(d_loss, g_loss, learning_rate, beta1):
    """
    Get optimization operations
    :param d_loss: Discriminator loss Tensor
    :param g_loss: Generator loss Tensor
    :param learning_rate: Learning Rate Placeholder
    :param beta1: The exponential decay rate for the 1st moment in the optimizer
    :return: A tuple of (discriminator training operation, generator training operation)
    """
    # TODO: Implement Function
    #return None, None
    # Get weights and bias to update
    t_vars = tf.trainable_variables()
    d_vars = [var for var in t_vars if var.name.startswith('discriminator')]
    g_vars = [var for var in t_vars if var.name.startswith('generator')]

    # Optimize
    with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
        d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)
        g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)

    return d_train_opt, g_train_opt
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_opt(model_opt, tf)
Tests Passed

Neural Network Training

Show Output

Use this function to show the current output of the generator during training. It will help you determine how well the GANs is training.

In [10]:
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import numpy as np

def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):
    """
    Show example output for the generator
    :param sess: TensorFlow session
    :param n_images: Number of Images to display
    :param input_z: Input Z Tensor
    :param out_channel_dim: The number of channels in the output image
    :param image_mode: The mode to use for images ("RGB" or "L")
    """
    cmap = None if image_mode == 'RGB' else 'gray'
    z_dim = input_z.get_shape().as_list()[-1]
    example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])

    samples = sess.run(
        generator(input_z, out_channel_dim, False),
        feed_dict={input_z: example_z})

    images_grid = helper.images_square_grid(samples, image_mode)
    pyplot.imshow(images_grid, cmap=cmap)
    pyplot.show()

Train

Implement train to build and train the GANs. Use the following functions you implemented:

  • model_inputs(image_width, image_height, image_channels, z_dim)
  • model_loss(input_real, input_z, out_channel_dim)
  • model_opt(d_loss, g_loss, learning_rate, beta1)

Use the show_generator_output to show generator output while you train. Running show_generator_output for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the generator output every 100 batches.

In [11]:
def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode):
    """
    Train the GAN
    :param epoch_count: Number of epochs
    :param batch_size: Batch Size
    :param z_dim: Z dimension
    :param learning_rate: Learning Rate
    :param beta1: The exponential decay rate for the 1st moment in the optimizer
    :param get_batches: Function to get batches
    :param data_shape: Shape of the data
    :param data_image_mode: The image mode to use for images ("RGB" or "L")
    """
    # TODO: Build Model
    #building GAN
    image_width = data_shape[1]
    image_height = data_shape[2]
    image_channels = data_shape[3]

    #Define the model_inputs
    input_real, input_z, lr = model_inputs(image_width, image_height, image_channels, z_dim)

    #Define the model_loss
    d_loss, g_loss = model_loss(input_real, input_z, image_channels)

    #Define the model_opt
    d_train_opt, g_train_opt = model_opt(d_loss, g_loss, lr, beta1)

    #Training metric
    n_total_batches = data_shape[0] // batch_size

    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
    
        for epoch_i in range(epoch_count):
            batch_counter = 0
        
            for batch_images in get_batches(batch_size):
             # TODO: Train Model
                batch_counter +=1
            
                batch_images = batch_images * 2.0
            
                #random noise for generator
                batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))
            
                #run optimizers
                _ = sess.run(d_train_opt, feed_dict={input_z: batch_z, input_real: batch_images, lr: learning_rate})
                _ = sess.run(g_train_opt, feed_dict={input_z: batch_z, input_real: batch_images, lr: learning_rate})
            
                if batch_counter % 10 ==0:
                    train_loss_d = d_loss.eval({input_z: batch_z, input_real: batch_images})
                    train_loss_g = g_loss.eval({input_z: batch_z})
                    print("Epoch {}/{} - Batch {}/{}: ".format(epoch_i+1, epoch_count, batch_counter, n_total_batches),
                         "Discriminator Loss: {:.4f}".format(train_loss_d),
                         "Generator Loss: {:.4f}".format(train_loss_g))
                if batch_counter % 100 == 0:
                    show_generator_output(sess, 25, input_z, image_channels, data_image_mode)         
                

MNIST

Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0.

In [12]:
batch_size = 32
z_dim = 100
learning_rate = 0.0004
beta1 = 0.5


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 2

mnist_dataset = helper.Dataset('mnist', glob(os.path.join(data_dir, 'mnist/*.jpg')))
with tf.Graph().as_default():
    train(epochs, batch_size, z_dim, learning_rate, beta1, mnist_dataset.get_batches,
          mnist_dataset.shape, mnist_dataset.image_mode)
Epoch 1/2 - Batch 10/1875:  Discriminator Loss: 0.5851 Generator Loss: 1.6122
Epoch 1/2 - Batch 20/1875:  Discriminator Loss: 0.3911 Generator Loss: 3.1025
Epoch 1/2 - Batch 30/1875:  Discriminator Loss: 0.5141 Generator Loss: 2.0191
Epoch 1/2 - Batch 40/1875:  Discriminator Loss: 0.5249 Generator Loss: 2.2072
Epoch 1/2 - Batch 50/1875:  Discriminator Loss: 0.5022 Generator Loss: 2.3617
Epoch 1/2 - Batch 60/1875:  Discriminator Loss: 0.4347 Generator Loss: 3.7876
Epoch 1/2 - Batch 70/1875:  Discriminator Loss: 0.4113 Generator Loss: 2.9907
Epoch 1/2 - Batch 80/1875:  Discriminator Loss: 0.4277 Generator Loss: 2.7372
Epoch 1/2 - Batch 90/1875:  Discriminator Loss: 0.4305 Generator Loss: 2.8119
Epoch 1/2 - Batch 100/1875:  Discriminator Loss: 0.3660 Generator Loss: 3.4884
Epoch 1/2 - Batch 110/1875:  Discriminator Loss: 0.3795 Generator Loss: 4.3205
Epoch 1/2 - Batch 120/1875:  Discriminator Loss: 0.3768 Generator Loss: 3.4094
Epoch 1/2 - Batch 130/1875:  Discriminator Loss: 0.3866 Generator Loss: 3.4749
Epoch 1/2 - Batch 140/1875:  Discriminator Loss: 0.3755 Generator Loss: 3.2584
Epoch 1/2 - Batch 150/1875:  Discriminator Loss: 0.3788 Generator Loss: 3.8787
Epoch 1/2 - Batch 160/1875:  Discriminator Loss: 0.3535 Generator Loss: 3.9920
Epoch 1/2 - Batch 170/1875:  Discriminator Loss: 0.3636 Generator Loss: 3.8480
Epoch 1/2 - Batch 180/1875:  Discriminator Loss: 0.3934 Generator Loss: 3.2299
Epoch 1/2 - Batch 190/1875:  Discriminator Loss: 0.3746 Generator Loss: 3.7629
Epoch 1/2 - Batch 200/1875:  Discriminator Loss: 0.3824 Generator Loss: 4.3050
Epoch 1/2 - Batch 210/1875:  Discriminator Loss: 0.3711 Generator Loss: 4.9248
Epoch 1/2 - Batch 220/1875:  Discriminator Loss: 0.3723 Generator Loss: 3.4162
Epoch 1/2 - Batch 230/1875:  Discriminator Loss: 0.3728 Generator Loss: 3.5261
Epoch 1/2 - Batch 240/1875:  Discriminator Loss: 0.3912 Generator Loss: 3.4964
Epoch 1/2 - Batch 250/1875:  Discriminator Loss: 0.3806 Generator Loss: 5.0663
Epoch 1/2 - Batch 260/1875:  Discriminator Loss: 0.3454 Generator Loss: 4.6389
Epoch 1/2 - Batch 270/1875:  Discriminator Loss: 0.3489 Generator Loss: 5.2558
Epoch 1/2 - Batch 280/1875:  Discriminator Loss: 0.3644 Generator Loss: 4.4806
Epoch 1/2 - Batch 290/1875:  Discriminator Loss: 0.3830 Generator Loss: 3.2545
Epoch 1/2 - Batch 300/1875:  Discriminator Loss: 0.3886 Generator Loss: 3.1686
Epoch 1/2 - Batch 310/1875:  Discriminator Loss: 0.4193 Generator Loss: 4.8612
Epoch 1/2 - Batch 320/1875:  Discriminator Loss: 0.3716 Generator Loss: 3.5539
Epoch 1/2 - Batch 330/1875:  Discriminator Loss: 0.3997 Generator Loss: 4.4843
Epoch 1/2 - Batch 340/1875:  Discriminator Loss: 0.4022 Generator Loss: 3.3508
Epoch 1/2 - Batch 350/1875:  Discriminator Loss: 0.3771 Generator Loss: 3.8172
Epoch 1/2 - Batch 360/1875:  Discriminator Loss: 0.5456 Generator Loss: 6.9065
Epoch 1/2 - Batch 370/1875:  Discriminator Loss: 0.3937 Generator Loss: 3.2734
Epoch 1/2 - Batch 380/1875:  Discriminator Loss: 0.3540 Generator Loss: 4.0212
Epoch 1/2 - Batch 390/1875:  Discriminator Loss: 0.3617 Generator Loss: 4.6509
Epoch 1/2 - Batch 400/1875:  Discriminator Loss: 0.3520 Generator Loss: 4.2813
Epoch 1/2 - Batch 410/1875:  Discriminator Loss: 0.4009 Generator Loss: 3.1211
Epoch 1/2 - Batch 420/1875:  Discriminator Loss: 0.3518 Generator Loss: 4.6271
Epoch 1/2 - Batch 430/1875:  Discriminator Loss: 0.3465 Generator Loss: 4.7121
Epoch 1/2 - Batch 440/1875:  Discriminator Loss: 0.3589 Generator Loss: 4.0265
Epoch 1/2 - Batch 450/1875:  Discriminator Loss: 0.3560 Generator Loss: 4.4804
Epoch 1/2 - Batch 460/1875:  Discriminator Loss: 0.3512 Generator Loss: 4.3786
Epoch 1/2 - Batch 470/1875:  Discriminator Loss: 0.3564 Generator Loss: 4.1602
Epoch 1/2 - Batch 480/1875:  Discriminator Loss: 0.3539 Generator Loss: 3.9473
Epoch 1/2 - Batch 490/1875:  Discriminator Loss: 0.3529 Generator Loss: 4.1186
Epoch 1/2 - Batch 500/1875:  Discriminator Loss: 0.3556 Generator Loss: 4.0588
Epoch 1/2 - Batch 510/1875:  Discriminator Loss: 0.3530 Generator Loss: 4.4524
Epoch 1/2 - Batch 520/1875:  Discriminator Loss: 0.3540 Generator Loss: 4.6546
Epoch 1/2 - Batch 530/1875:  Discriminator Loss: 0.3767 Generator Loss: 4.0496
Epoch 1/2 - Batch 540/1875:  Discriminator Loss: 0.3548 Generator Loss: 4.7006
Epoch 1/2 - Batch 550/1875:  Discriminator Loss: 0.4021 Generator Loss: 3.0719
Epoch 1/2 - Batch 560/1875:  Discriminator Loss: 0.3577 Generator Loss: 5.6351
Epoch 1/2 - Batch 570/1875:  Discriminator Loss: 0.3479 Generator Loss: 4.8183
Epoch 1/2 - Batch 580/1875:  Discriminator Loss: 0.3664 Generator Loss: 4.3195
Epoch 1/2 - Batch 590/1875:  Discriminator Loss: 0.3423 Generator Loss: 4.8993
Epoch 1/2 - Batch 600/1875:  Discriminator Loss: 0.3511 Generator Loss: 4.4357
Epoch 1/2 - Batch 610/1875:  Discriminator Loss: 0.3634 Generator Loss: 4.2103
Epoch 1/2 - Batch 620/1875:  Discriminator Loss: 0.3578 Generator Loss: 5.0572
Epoch 1/2 - Batch 630/1875:  Discriminator Loss: 0.3637 Generator Loss: 4.0222
Epoch 1/2 - Batch 640/1875:  Discriminator Loss: 0.3637 Generator Loss: 4.1831
Epoch 1/2 - Batch 650/1875:  Discriminator Loss: 0.3605 Generator Loss: 4.9613
Epoch 1/2 - Batch 660/1875:  Discriminator Loss: 0.3511 Generator Loss: 4.4196
Epoch 1/2 - Batch 670/1875:  Discriminator Loss: 0.3394 Generator Loss: 4.9766
Epoch 1/2 - Batch 680/1875:  Discriminator Loss: 0.3410 Generator Loss: 5.1161
Epoch 1/2 - Batch 690/1875:  Discriminator Loss: 0.3449 Generator Loss: 5.2822
Epoch 1/2 - Batch 700/1875:  Discriminator Loss: 0.3591 Generator Loss: 4.8915
Epoch 1/2 - Batch 710/1875:  Discriminator Loss: 0.3572 Generator Loss: 6.0606
Epoch 1/2 - Batch 720/1875:  Discriminator Loss: 0.3476 Generator Loss: 5.4494
Epoch 1/2 - Batch 730/1875:  Discriminator Loss: 0.3551 Generator Loss: 4.1009
Epoch 1/2 - Batch 740/1875:  Discriminator Loss: 0.3670 Generator Loss: 6.2055
Epoch 1/2 - Batch 750/1875:  Discriminator Loss: 0.3468 Generator Loss: 4.2231
Epoch 1/2 - Batch 760/1875:  Discriminator Loss: 0.3568 Generator Loss: 4.0132
Epoch 1/2 - Batch 770/1875:  Discriminator Loss: 0.3492 Generator Loss: 4.5195
Epoch 1/2 - Batch 780/1875:  Discriminator Loss: 0.3887 Generator Loss: 3.0220
Epoch 1/2 - Batch 790/1875:  Discriminator Loss: 0.3547 Generator Loss: 4.7114
Epoch 1/2 - Batch 800/1875:  Discriminator Loss: 0.3440 Generator Loss: 4.6423
Epoch 1/2 - Batch 810/1875:  Discriminator Loss: 0.3416 Generator Loss: 5.1195
Epoch 1/2 - Batch 820/1875:  Discriminator Loss: 0.3404 Generator Loss: 5.7852
Epoch 1/2 - Batch 830/1875:  Discriminator Loss: 0.3470 Generator Loss: 4.0374
Epoch 1/2 - Batch 840/1875:  Discriminator Loss: 0.3413 Generator Loss: 5.1336
Epoch 1/2 - Batch 850/1875:  Discriminator Loss: 0.3576 Generator Loss: 6.2128
Epoch 1/2 - Batch 860/1875:  Discriminator Loss: 0.3351 Generator Loss: 5.3772
Epoch 1/2 - Batch 870/1875:  Discriminator Loss: 0.3403 Generator Loss: 4.9469
Epoch 1/2 - Batch 880/1875:  Discriminator Loss: 0.3480 Generator Loss: 4.3215
Epoch 1/2 - Batch 890/1875:  Discriminator Loss: 0.3519 Generator Loss: 5.3148
Epoch 1/2 - Batch 900/1875:  Discriminator Loss: 0.3618 Generator Loss: 4.2583
Epoch 1/2 - Batch 910/1875:  Discriminator Loss: 0.3521 Generator Loss: 4.9414
Epoch 1/2 - Batch 920/1875:  Discriminator Loss: 0.3560 Generator Loss: 3.9669
Epoch 1/2 - Batch 930/1875:  Discriminator Loss: 0.3637 Generator Loss: 3.7407
Epoch 1/2 - Batch 940/1875:  Discriminator Loss: 0.3446 Generator Loss: 5.1370
Epoch 1/2 - Batch 950/1875:  Discriminator Loss: 0.3439 Generator Loss: 4.5720
Epoch 1/2 - Batch 960/1875:  Discriminator Loss: 0.3423 Generator Loss: 5.0383
Epoch 1/2 - Batch 970/1875:  Discriminator Loss: 0.3573 Generator Loss: 3.8788
Epoch 1/2 - Batch 980/1875:  Discriminator Loss: 0.3423 Generator Loss: 5.7658
Epoch 1/2 - Batch 990/1875:  Discriminator Loss: 0.3505 Generator Loss: 4.4546
Epoch 1/2 - Batch 1000/1875:  Discriminator Loss: 0.3725 Generator Loss: 5.5608
Epoch 1/2 - Batch 1010/1875:  Discriminator Loss: 0.3528 Generator Loss: 4.2790
Epoch 1/2 - Batch 1020/1875:  Discriminator Loss: 0.3540 Generator Loss: 4.0763
Epoch 1/2 - Batch 1030/1875:  Discriminator Loss: 0.3592 Generator Loss: 3.9138
Epoch 1/2 - Batch 1040/1875:  Discriminator Loss: 0.3871 Generator Loss: 3.1619
Epoch 1/2 - Batch 1050/1875:  Discriminator Loss: 0.3485 Generator Loss: 4.9008
Epoch 1/2 - Batch 1060/1875:  Discriminator Loss: 0.3638 Generator Loss: 3.8924
Epoch 1/2 - Batch 1070/1875:  Discriminator Loss: 0.3759 Generator Loss: 3.2202
Epoch 1/2 - Batch 1080/1875:  Discriminator Loss: 0.3566 Generator Loss: 3.8027
Epoch 1/2 - Batch 1090/1875:  Discriminator Loss: 0.3501 Generator Loss: 3.9986
Epoch 1/2 - Batch 1100/1875:  Discriminator Loss: 0.4048 Generator Loss: 5.8095
Epoch 1/2 - Batch 1110/1875:  Discriminator Loss: 0.3625 Generator Loss: 3.9001
Epoch 1/2 - Batch 1120/1875:  Discriminator Loss: 0.3616 Generator Loss: 3.8787
Epoch 1/2 - Batch 1130/1875:  Discriminator Loss: 0.3867 Generator Loss: 4.3177
Epoch 1/2 - Batch 1140/1875:  Discriminator Loss: 0.4574 Generator Loss: 5.2988
Epoch 1/2 - Batch 1150/1875:  Discriminator Loss: 0.3680 Generator Loss: 3.5663
Epoch 1/2 - Batch 1160/1875:  Discriminator Loss: 0.3748 Generator Loss: 5.1272
Epoch 1/2 - Batch 1170/1875:  Discriminator Loss: 0.3774 Generator Loss: 3.8583
Epoch 1/2 - Batch 1180/1875:  Discriminator Loss: 0.3982 Generator Loss: 3.2435
Epoch 1/2 - Batch 1190/1875:  Discriminator Loss: 0.3797 Generator Loss: 3.4669
Epoch 1/2 - Batch 1200/1875:  Discriminator Loss: 0.3575 Generator Loss: 3.9025
Epoch 1/2 - Batch 1210/1875:  Discriminator Loss: 0.3532 Generator Loss: 3.8626
Epoch 1/2 - Batch 1220/1875:  Discriminator Loss: 0.3653 Generator Loss: 3.5418
Epoch 1/2 - Batch 1230/1875:  Discriminator Loss: 0.3678 Generator Loss: 3.6337
Epoch 1/2 - Batch 1240/1875:  Discriminator Loss: 0.3903 Generator Loss: 5.0247
Epoch 1/2 - Batch 1250/1875:  Discriminator Loss: 0.3650 Generator Loss: 3.8430
Epoch 1/2 - Batch 1260/1875:  Discriminator Loss: 0.3627 Generator Loss: 3.7684
Epoch 1/2 - Batch 1270/1875:  Discriminator Loss: 0.3972 Generator Loss: 2.8860
Epoch 1/2 - Batch 1280/1875:  Discriminator Loss: 0.3808 Generator Loss: 4.4937
Epoch 1/2 - Batch 1290/1875:  Discriminator Loss: 0.3836 Generator Loss: 3.3332
Epoch 1/2 - Batch 1300/1875:  Discriminator Loss: 0.3580 Generator Loss: 3.8338
Epoch 1/2 - Batch 1310/1875:  Discriminator Loss: 0.3712 Generator Loss: 3.5357
Epoch 1/2 - Batch 1320/1875:  Discriminator Loss: 0.3838 Generator Loss: 3.3183
Epoch 1/2 - Batch 1330/1875:  Discriminator Loss: 0.3794 Generator Loss: 4.1577
Epoch 1/2 - Batch 1340/1875:  Discriminator Loss: 0.3789 Generator Loss: 4.0732
Epoch 1/2 - Batch 1350/1875:  Discriminator Loss: 0.3858 Generator Loss: 4.2560
Epoch 1/2 - Batch 1360/1875:  Discriminator Loss: 0.3889 Generator Loss: 3.8373
Epoch 1/2 - Batch 1370/1875:  Discriminator Loss: 0.3706 Generator Loss: 3.5678
Epoch 1/2 - Batch 1380/1875:  Discriminator Loss: 0.3922 Generator Loss: 4.0751
Epoch 1/2 - Batch 1390/1875:  Discriminator Loss: 0.3831 Generator Loss: 4.7258
Epoch 1/2 - Batch 1400/1875:  Discriminator Loss: 0.3691 Generator Loss: 3.6010
Epoch 1/2 - Batch 1410/1875:  Discriminator Loss: 0.3982 Generator Loss: 2.9282
Epoch 1/2 - Batch 1420/1875:  Discriminator Loss: 0.3927 Generator Loss: 4.9574
Epoch 1/2 - Batch 1430/1875:  Discriminator Loss: 0.3713 Generator Loss: 3.7348
Epoch 1/2 - Batch 1440/1875:  Discriminator Loss: 0.4013 Generator Loss: 3.3613
Epoch 1/2 - Batch 1450/1875:  Discriminator Loss: 0.3951 Generator Loss: 2.8971
Epoch 1/2 - Batch 1460/1875:  Discriminator Loss: 0.4146 Generator Loss: 5.4154
Epoch 1/2 - Batch 1470/1875:  Discriminator Loss: 0.3662 Generator Loss: 3.9634
Epoch 1/2 - Batch 1480/1875:  Discriminator Loss: 0.3751 Generator Loss: 4.0041
Epoch 1/2 - Batch 1490/1875:  Discriminator Loss: 0.3658 Generator Loss: 4.5404
Epoch 1/2 - Batch 1500/1875:  Discriminator Loss: 0.3639 Generator Loss: 4.0528
Epoch 1/2 - Batch 1510/1875:  Discriminator Loss: 0.3862 Generator Loss: 3.0673
Epoch 1/2 - Batch 1520/1875:  Discriminator Loss: 0.3860 Generator Loss: 4.9016
Epoch 1/2 - Batch 1530/1875:  Discriminator Loss: 0.3641 Generator Loss: 3.7184
Epoch 1/2 - Batch 1540/1875:  Discriminator Loss: 0.3857 Generator Loss: 4.0398
Epoch 1/2 - Batch 1550/1875:  Discriminator Loss: 0.3766 Generator Loss: 3.5513
Epoch 1/2 - Batch 1560/1875:  Discriminator Loss: 0.3674 Generator Loss: 3.4477
Epoch 1/2 - Batch 1570/1875:  Discriminator Loss: 0.3694 Generator Loss: 3.4425
Epoch 1/2 - Batch 1580/1875:  Discriminator Loss: 0.3720 Generator Loss: 3.3778
Epoch 1/2 - Batch 1590/1875:  Discriminator Loss: 0.3722 Generator Loss: 3.4057
Epoch 1/2 - Batch 1600/1875:  Discriminator Loss: 0.3865 Generator Loss: 3.9256
Epoch 1/2 - Batch 1610/1875:  Discriminator Loss: 0.3775 Generator Loss: 3.3921
Epoch 1/2 - Batch 1620/1875:  Discriminator Loss: 0.3773 Generator Loss: 3.3815
Epoch 1/2 - Batch 1630/1875:  Discriminator Loss: 0.3839 Generator Loss: 3.3540
Epoch 1/2 - Batch 1640/1875:  Discriminator Loss: 0.3782 Generator Loss: 3.3880
Epoch 1/2 - Batch 1650/1875:  Discriminator Loss: 0.3998 Generator Loss: 3.0112
Epoch 1/2 - Batch 1660/1875:  Discriminator Loss: 0.4068 Generator Loss: 2.8299
Epoch 1/2 - Batch 1670/1875:  Discriminator Loss: 0.3832 Generator Loss: 3.1849
Epoch 1/2 - Batch 1680/1875:  Discriminator Loss: 0.4068 Generator Loss: 2.7896
Epoch 1/2 - Batch 1690/1875:  Discriminator Loss: 0.3757 Generator Loss: 3.4736
Epoch 1/2 - Batch 1700/1875:  Discriminator Loss: 0.3816 Generator Loss: 3.2930
Epoch 1/2 - Batch 1710/1875:  Discriminator Loss: 0.3898 Generator Loss: 4.5635
Epoch 1/2 - Batch 1720/1875:  Discriminator Loss: 0.3890 Generator Loss: 4.0708
Epoch 1/2 - Batch 1730/1875:  Discriminator Loss: 0.3727 Generator Loss: 3.5673
Epoch 1/2 - Batch 1740/1875:  Discriminator Loss: 0.3773 Generator Loss: 3.1938
Epoch 1/2 - Batch 1750/1875:  Discriminator Loss: 0.3884 Generator Loss: 3.0729
Epoch 1/2 - Batch 1760/1875:  Discriminator Loss: 0.3885 Generator Loss: 2.9236
Epoch 1/2 - Batch 1770/1875:  Discriminator Loss: 0.3749 Generator Loss: 3.8539
Epoch 1/2 - Batch 1780/1875:  Discriminator Loss: 0.4010 Generator Loss: 3.0770
Epoch 1/2 - Batch 1790/1875:  Discriminator Loss: 0.3839 Generator Loss: 3.4175
Epoch 1/2 - Batch 1800/1875:  Discriminator Loss: 0.3970 Generator Loss: 2.8004
Epoch 1/2 - Batch 1810/1875:  Discriminator Loss: 0.3885 Generator Loss: 3.1160
Epoch 1/2 - Batch 1820/1875:  Discriminator Loss: 0.3929 Generator Loss: 2.8800
Epoch 1/2 - Batch 1830/1875:  Discriminator Loss: 0.3914 Generator Loss: 2.9734
Epoch 1/2 - Batch 1840/1875:  Discriminator Loss: 0.3944 Generator Loss: 2.8838
Epoch 1/2 - Batch 1850/1875:  Discriminator Loss: 0.4052 Generator Loss: 3.9433
Epoch 1/2 - Batch 1860/1875:  Discriminator Loss: 0.3769 Generator Loss: 3.6569
Epoch 1/2 - Batch 1870/1875:  Discriminator Loss: 0.3954 Generator Loss: 3.8934
Epoch 2/2 - Batch 10/1875:  Discriminator Loss: 0.4008 Generator Loss: 2.8286
Epoch 2/2 - Batch 20/1875:  Discriminator Loss: 0.3680 Generator Loss: 3.3538
Epoch 2/2 - Batch 30/1875:  Discriminator Loss: 0.3769 Generator Loss: 3.5685
Epoch 2/2 - Batch 40/1875:  Discriminator Loss: 0.4200 Generator Loss: 4.4195
Epoch 2/2 - Batch 50/1875:  Discriminator Loss: 0.3834 Generator Loss: 3.4109
Epoch 2/2 - Batch 60/1875:  Discriminator Loss: 0.4131 Generator Loss: 4.0324
Epoch 2/2 - Batch 70/1875:  Discriminator Loss: 0.3830 Generator Loss: 3.7308
Epoch 2/2 - Batch 80/1875:  Discriminator Loss: 0.3744 Generator Loss: 3.2345
Epoch 2/2 - Batch 90/1875:  Discriminator Loss: 0.3798 Generator Loss: 3.5688
Epoch 2/2 - Batch 100/1875:  Discriminator Loss: 0.4008 Generator Loss: 2.9488
Epoch 2/2 - Batch 110/1875:  Discriminator Loss: 0.3942 Generator Loss: 3.6917
Epoch 2/2 - Batch 120/1875:  Discriminator Loss: 0.3800 Generator Loss: 3.2301
Epoch 2/2 - Batch 130/1875:  Discriminator Loss: 0.4117 Generator Loss: 3.9937
Epoch 2/2 - Batch 140/1875:  Discriminator Loss: 0.3804 Generator Loss: 3.3107
Epoch 2/2 - Batch 150/1875:  Discriminator Loss: 0.4043 Generator Loss: 2.7292
Epoch 2/2 - Batch 160/1875:  Discriminator Loss: 0.3900 Generator Loss: 2.9438
Epoch 2/2 - Batch 170/1875:  Discriminator Loss: 0.3886 Generator Loss: 3.4911
Epoch 2/2 - Batch 180/1875:  Discriminator Loss: 0.4037 Generator Loss: 2.7739
Epoch 2/2 - Batch 190/1875:  Discriminator Loss: 0.3940 Generator Loss: 3.5221
Epoch 2/2 - Batch 200/1875:  Discriminator Loss: 0.3912 Generator Loss: 3.3651
Epoch 2/2 - Batch 210/1875:  Discriminator Loss: 0.4385 Generator Loss: 2.4841
Epoch 2/2 - Batch 220/1875:  Discriminator Loss: 0.4528 Generator Loss: 4.3663
Epoch 2/2 - Batch 230/1875:  Discriminator Loss: 0.3958 Generator Loss: 2.9354
Epoch 2/2 - Batch 240/1875:  Discriminator Loss: 0.3941 Generator Loss: 3.1274
Epoch 2/2 - Batch 250/1875:  Discriminator Loss: 0.3932 Generator Loss: 3.1733
Epoch 2/2 - Batch 260/1875:  Discriminator Loss: 0.3889 Generator Loss: 3.3815
Epoch 2/2 - Batch 270/1875:  Discriminator Loss: 0.4253 Generator Loss: 2.4789
Epoch 2/2 - Batch 280/1875:  Discriminator Loss: 0.4166 Generator Loss: 4.0337
Epoch 2/2 - Batch 290/1875:  Discriminator Loss: 0.3817 Generator Loss: 3.2864
Epoch 2/2 - Batch 300/1875:  Discriminator Loss: 0.3875 Generator Loss: 3.0628
Epoch 2/2 - Batch 310/1875:  Discriminator Loss: 0.4123 Generator Loss: 3.4014
Epoch 2/2 - Batch 320/1875:  Discriminator Loss: 0.3862 Generator Loss: 3.7348
Epoch 2/2 - Batch 330/1875:  Discriminator Loss: 0.3790 Generator Loss: 3.5244
Epoch 2/2 - Batch 340/1875:  Discriminator Loss: 0.3996 Generator Loss: 3.1913
Epoch 2/2 - Batch 350/1875:  Discriminator Loss: 0.4262 Generator Loss: 2.4769
Epoch 2/2 - Batch 360/1875:  Discriminator Loss: 0.3943 Generator Loss: 3.2409
Epoch 2/2 - Batch 370/1875:  Discriminator Loss: 0.4001 Generator Loss: 2.9260
Epoch 2/2 - Batch 380/1875:  Discriminator Loss: 0.3888 Generator Loss: 3.0261
Epoch 2/2 - Batch 390/1875:  Discriminator Loss: 0.3833 Generator Loss: 3.3519
Epoch 2/2 - Batch 400/1875:  Discriminator Loss: 0.3853 Generator Loss: 2.9924
Epoch 2/2 - Batch 410/1875:  Discriminator Loss: 0.3873 Generator Loss: 3.3794
Epoch 2/2 - Batch 420/1875:  Discriminator Loss: 0.3938 Generator Loss: 2.9751
Epoch 2/2 - Batch 430/1875:  Discriminator Loss: 0.4098 Generator Loss: 2.6782
Epoch 2/2 - Batch 440/1875:  Discriminator Loss: 0.3885 Generator Loss: 3.0820
Epoch 2/2 - Batch 450/1875:  Discriminator Loss: 0.3736 Generator Loss: 3.5739
Epoch 2/2 - Batch 460/1875:  Discriminator Loss: 0.3893 Generator Loss: 2.9000
Epoch 2/2 - Batch 470/1875:  Discriminator Loss: 0.4122 Generator Loss: 3.4817
Epoch 2/2 - Batch 480/1875:  Discriminator Loss: 0.3978 Generator Loss: 3.0065
Epoch 2/2 - Batch 490/1875:  Discriminator Loss: 0.3906 Generator Loss: 3.2178
Epoch 2/2 - Batch 500/1875:  Discriminator Loss: 0.3995 Generator Loss: 3.0746
Epoch 2/2 - Batch 510/1875:  Discriminator Loss: 0.3899 Generator Loss: 3.5551
Epoch 2/2 - Batch 520/1875:  Discriminator Loss: 0.3740 Generator Loss: 3.3011
Epoch 2/2 - Batch 530/1875:  Discriminator Loss: 0.3942 Generator Loss: 2.9532
Epoch 2/2 - Batch 540/1875:  Discriminator Loss: 0.4023 Generator Loss: 3.0293
Epoch 2/2 - Batch 550/1875:  Discriminator Loss: 0.3826 Generator Loss: 3.2046
Epoch 2/2 - Batch 560/1875:  Discriminator Loss: 0.3752 Generator Loss: 3.3146
Epoch 2/2 - Batch 570/1875:  Discriminator Loss: 0.4047 Generator Loss: 2.7327
Epoch 2/2 - Batch 580/1875:  Discriminator Loss: 0.3909 Generator Loss: 3.7910
Epoch 2/2 - Batch 590/1875:  Discriminator Loss: 0.3855 Generator Loss: 3.0619
Epoch 2/2 - Batch 600/1875:  Discriminator Loss: 0.3965 Generator Loss: 2.8410
Epoch 2/2 - Batch 610/1875:  Discriminator Loss: 0.3849 Generator Loss: 3.4118
Epoch 2/2 - Batch 620/1875:  Discriminator Loss: 0.3948 Generator Loss: 2.8548
Epoch 2/2 - Batch 630/1875:  Discriminator Loss: 0.3775 Generator Loss: 3.2071
Epoch 2/2 - Batch 640/1875:  Discriminator Loss: 0.3868 Generator Loss: 2.9460
Epoch 2/2 - Batch 650/1875:  Discriminator Loss: 0.3839 Generator Loss: 3.3416
Epoch 2/2 - Batch 660/1875:  Discriminator Loss: 0.3830 Generator Loss: 3.1291
Epoch 2/2 - Batch 670/1875:  Discriminator Loss: 0.3807 Generator Loss: 3.1995
Epoch 2/2 - Batch 680/1875:  Discriminator Loss: 0.3841 Generator Loss: 3.2788
Epoch 2/2 - Batch 690/1875:  Discriminator Loss: 0.3800 Generator Loss: 3.2888
Epoch 2/2 - Batch 700/1875:  Discriminator Loss: 0.3826 Generator Loss: 3.0823
Epoch 2/2 - Batch 710/1875:  Discriminator Loss: 0.3819 Generator Loss: 3.0737
Epoch 2/2 - Batch 720/1875:  Discriminator Loss: 0.3956 Generator Loss: 3.0555
Epoch 2/2 - Batch 730/1875:  Discriminator Loss: 0.4608 Generator Loss: 4.9141
Epoch 2/2 - Batch 740/1875:  Discriminator Loss: 0.4032 Generator Loss: 2.8261
Epoch 2/2 - Batch 750/1875:  Discriminator Loss: 0.3937 Generator Loss: 3.6724
Epoch 2/2 - Batch 760/1875:  Discriminator Loss: 0.5951 Generator Loss: 1.9655
Epoch 2/2 - Batch 770/1875:  Discriminator Loss: 0.8877 Generator Loss: 9.1976
Epoch 2/2 - Batch 780/1875:  Discriminator Loss: 0.4157 Generator Loss: 3.7827
Epoch 2/2 - Batch 790/1875:  Discriminator Loss: 0.4172 Generator Loss: 3.0643
Epoch 2/2 - Batch 800/1875:  Discriminator Loss: 0.3968 Generator Loss: 3.0697
Epoch 2/2 - Batch 810/1875:  Discriminator Loss: 0.3890 Generator Loss: 3.0721
Epoch 2/2 - Batch 820/1875:  Discriminator Loss: 0.3889 Generator Loss: 3.0843
Epoch 2/2 - Batch 830/1875:  Discriminator Loss: 0.3751 Generator Loss: 3.3511
Epoch 2/2 - Batch 840/1875:  Discriminator Loss: 0.3961 Generator Loss: 2.9693
Epoch 2/2 - Batch 850/1875:  Discriminator Loss: 0.3972 Generator Loss: 3.2879
Epoch 2/2 - Batch 860/1875:  Discriminator Loss: 0.3826 Generator Loss: 3.1181
Epoch 2/2 - Batch 870/1875:  Discriminator Loss: 0.3894 Generator Loss: 3.3396
Epoch 2/2 - Batch 880/1875:  Discriminator Loss: 0.4141 Generator Loss: 2.5355
Epoch 2/2 - Batch 890/1875:  Discriminator Loss: 0.3869 Generator Loss: 3.1097
Epoch 2/2 - Batch 900/1875:  Discriminator Loss: 0.3948 Generator Loss: 2.9857
Epoch 2/2 - Batch 910/1875:  Discriminator Loss: 0.3977 Generator Loss: 2.8289
Epoch 2/2 - Batch 920/1875:  Discriminator Loss: 0.3820 Generator Loss: 3.0627
Epoch 2/2 - Batch 930/1875:  Discriminator Loss: 0.3908 Generator Loss: 2.8752
Epoch 2/2 - Batch 940/1875:  Discriminator Loss: 0.4039 Generator Loss: 3.4707
Epoch 2/2 - Batch 950/1875:  Discriminator Loss: 0.3932 Generator Loss: 3.0941
Epoch 2/2 - Batch 960/1875:  Discriminator Loss: 0.3749 Generator Loss: 3.4894
Epoch 2/2 - Batch 970/1875:  Discriminator Loss: 0.3745 Generator Loss: 3.3276
Epoch 2/2 - Batch 980/1875:  Discriminator Loss: 0.3877 Generator Loss: 3.1028
Epoch 2/2 - Batch 990/1875:  Discriminator Loss: 0.3901 Generator Loss: 3.5778
Epoch 2/2 - Batch 1000/1875:  Discriminator Loss: 0.3933 Generator Loss: 2.8889
Epoch 2/2 - Batch 1010/1875:  Discriminator Loss: 0.3752 Generator Loss: 3.2976
Epoch 2/2 - Batch 1020/1875:  Discriminator Loss: 0.4001 Generator Loss: 2.8464
Epoch 2/2 - Batch 1030/1875:  Discriminator Loss: 0.3907 Generator Loss: 3.3028
Epoch 2/2 - Batch 1040/1875:  Discriminator Loss: 0.4068 Generator Loss: 2.6901
Epoch 2/2 - Batch 1050/1875:  Discriminator Loss: 0.3751 Generator Loss: 3.2189
Epoch 2/2 - Batch 1060/1875:  Discriminator Loss: 0.3909 Generator Loss: 2.9042
Epoch 2/2 - Batch 1070/1875:  Discriminator Loss: 0.3818 Generator Loss: 3.3852
Epoch 2/2 - Batch 1080/1875:  Discriminator Loss: 0.4645 Generator Loss: 2.2472
Epoch 2/2 - Batch 1090/1875:  Discriminator Loss: 0.4370 Generator Loss: 2.4532
Epoch 2/2 - Batch 1100/1875:  Discriminator Loss: 0.3893 Generator Loss: 2.9109
Epoch 2/2 - Batch 1110/1875:  Discriminator Loss: 0.3870 Generator Loss: 2.9428
Epoch 2/2 - Batch 1120/1875:  Discriminator Loss: 0.3808 Generator Loss: 3.0535
Epoch 2/2 - Batch 1130/1875:  Discriminator Loss: 0.3890 Generator Loss: 3.2604
Epoch 2/2 - Batch 1140/1875:  Discriminator Loss: 0.3848 Generator Loss: 3.0806
Epoch 2/2 - Batch 1150/1875:  Discriminator Loss: 0.3888 Generator Loss: 2.9465
Epoch 2/2 - Batch 1160/1875:  Discriminator Loss: 0.3874 Generator Loss: 3.3744
Epoch 2/2 - Batch 1170/1875:  Discriminator Loss: 0.3773 Generator Loss: 3.1334
Epoch 2/2 - Batch 1180/1875:  Discriminator Loss: 0.4082 Generator Loss: 2.6430
Epoch 2/2 - Batch 1190/1875:  Discriminator Loss: 0.3858 Generator Loss: 3.0058
Epoch 2/2 - Batch 1200/1875:  Discriminator Loss: 0.3926 Generator Loss: 2.8305
Epoch 2/2 - Batch 1210/1875:  Discriminator Loss: 0.4310 Generator Loss: 2.4336
Epoch 2/2 - Batch 1220/1875:  Discriminator Loss: 0.3919 Generator Loss: 2.9163
Epoch 2/2 - Batch 1230/1875:  Discriminator Loss: 0.3748 Generator Loss: 3.7029
Epoch 2/2 - Batch 1240/1875:  Discriminator Loss: 0.3780 Generator Loss: 3.3136
Epoch 2/2 - Batch 1250/1875:  Discriminator Loss: 0.4930 Generator Loss: 2.1519
Epoch 2/2 - Batch 1260/1875:  Discriminator Loss: 0.4008 Generator Loss: 2.7984
Epoch 2/2 - Batch 1270/1875:  Discriminator Loss: 0.3843 Generator Loss: 3.0047
Epoch 2/2 - Batch 1280/1875:  Discriminator Loss: 0.3772 Generator Loss: 3.4175
Epoch 2/2 - Batch 1290/1875:  Discriminator Loss: 0.3878 Generator Loss: 3.1931
Epoch 2/2 - Batch 1300/1875:  Discriminator Loss: 0.3821 Generator Loss: 3.2783
Epoch 2/2 - Batch 1310/1875:  Discriminator Loss: 0.3931 Generator Loss: 2.8967
Epoch 2/2 - Batch 1320/1875:  Discriminator Loss: 0.3816 Generator Loss: 3.3116
Epoch 2/2 - Batch 1330/1875:  Discriminator Loss: 0.3712 Generator Loss: 3.3888
Epoch 2/2 - Batch 1340/1875:  Discriminator Loss: 0.3896 Generator Loss: 2.8865
Epoch 2/2 - Batch 1350/1875:  Discriminator Loss: 0.3934 Generator Loss: 2.9490
Epoch 2/2 - Batch 1360/1875:  Discriminator Loss: 0.3819 Generator Loss: 3.5819
Epoch 2/2 - Batch 1370/1875:  Discriminator Loss: 0.4363 Generator Loss: 2.4591
Epoch 2/2 - Batch 1380/1875:  Discriminator Loss: 0.4869 Generator Loss: 4.8224
Epoch 2/2 - Batch 1390/1875:  Discriminator Loss: 0.3828 Generator Loss: 3.0975
Epoch 2/2 - Batch 1400/1875:  Discriminator Loss: 0.3790 Generator Loss: 3.4278
Epoch 2/2 - Batch 1410/1875:  Discriminator Loss: 0.4018 Generator Loss: 2.7724
Epoch 2/2 - Batch 1420/1875:  Discriminator Loss: 0.3812 Generator Loss: 3.1011
Epoch 2/2 - Batch 1430/1875:  Discriminator Loss: 0.4082 Generator Loss: 2.7880
Epoch 2/2 - Batch 1440/1875:  Discriminator Loss: 0.3917 Generator Loss: 2.8856
Epoch 2/2 - Batch 1450/1875:  Discriminator Loss: 0.3764 Generator Loss: 3.2411
Epoch 2/2 - Batch 1460/1875:  Discriminator Loss: 0.3792 Generator Loss: 3.5880
Epoch 2/2 - Batch 1470/1875:  Discriminator Loss: 0.3928 Generator Loss: 2.8526
Epoch 2/2 - Batch 1480/1875:  Discriminator Loss: 0.4698 Generator Loss: 4.3469
Epoch 2/2 - Batch 1490/1875:  Discriminator Loss: 0.4043 Generator Loss: 3.8455
Epoch 2/2 - Batch 1500/1875:  Discriminator Loss: 0.3855 Generator Loss: 3.4651
Epoch 2/2 - Batch 1510/1875:  Discriminator Loss: 0.3854 Generator Loss: 3.1715
Epoch 2/2 - Batch 1520/1875:  Discriminator Loss: 0.4012 Generator Loss: 2.7543
Epoch 2/2 - Batch 1530/1875:  Discriminator Loss: 0.3779 Generator Loss: 3.1157
Epoch 2/2 - Batch 1540/1875:  Discriminator Loss: 0.3872 Generator Loss: 2.9703
Epoch 2/2 - Batch 1550/1875:  Discriminator Loss: 0.3877 Generator Loss: 3.2466
Epoch 2/2 - Batch 1560/1875:  Discriminator Loss: 0.3769 Generator Loss: 3.3175
Epoch 2/2 - Batch 1570/1875:  Discriminator Loss: 0.3814 Generator Loss: 3.0692
Epoch 2/2 - Batch 1580/1875:  Discriminator Loss: 0.3833 Generator Loss: 3.1938
Epoch 2/2 - Batch 1590/1875:  Discriminator Loss: 0.3768 Generator Loss: 3.0884
Epoch 2/2 - Batch 1600/1875:  Discriminator Loss: 0.3770 Generator Loss: 3.2616
Epoch 2/2 - Batch 1610/1875:  Discriminator Loss: 0.3733 Generator Loss: 3.2581
Epoch 2/2 - Batch 1620/1875:  Discriminator Loss: 0.4203 Generator Loss: 2.6091
Epoch 2/2 - Batch 1630/1875:  Discriminator Loss: 0.4050 Generator Loss: 3.1346
Epoch 2/2 - Batch 1640/1875:  Discriminator Loss: 0.3788 Generator Loss: 3.5931
Epoch 2/2 - Batch 1650/1875:  Discriminator Loss: 0.3797 Generator Loss: 3.2096
Epoch 2/2 - Batch 1660/1875:  Discriminator Loss: 0.4602 Generator Loss: 2.2910
Epoch 2/2 - Batch 1670/1875:  Discriminator Loss: 0.4103 Generator Loss: 2.6672
Epoch 2/2 - Batch 1680/1875:  Discriminator Loss: 0.3917 Generator Loss: 3.1263
Epoch 2/2 - Batch 1690/1875:  Discriminator Loss: 0.3857 Generator Loss: 3.0530
Epoch 2/2 - Batch 1700/1875:  Discriminator Loss: 0.3798 Generator Loss: 3.3032
Epoch 2/2 - Batch 1710/1875:  Discriminator Loss: 0.4020 Generator Loss: 3.9641
Epoch 2/2 - Batch 1720/1875:  Discriminator Loss: 0.3923 Generator Loss: 2.8955
Epoch 2/2 - Batch 1730/1875:  Discriminator Loss: 0.3791 Generator Loss: 3.3291
Epoch 2/2 - Batch 1740/1875:  Discriminator Loss: 0.3934 Generator Loss: 2.8040
Epoch 2/2 - Batch 1750/1875:  Discriminator Loss: 0.3709 Generator Loss: 3.4609
Epoch 2/2 - Batch 1760/1875:  Discriminator Loss: 0.3963 Generator Loss: 2.8291
Epoch 2/2 - Batch 1770/1875:  Discriminator Loss: 0.3844 Generator Loss: 2.9838
Epoch 2/2 - Batch 1780/1875:  Discriminator Loss: 0.3779 Generator Loss: 3.2287
Epoch 2/2 - Batch 1790/1875:  Discriminator Loss: 0.3813 Generator Loss: 3.2059
Epoch 2/2 - Batch 1800/1875:  Discriminator Loss: 0.4428 Generator Loss: 2.3533
Epoch 2/2 - Batch 1810/1875:  Discriminator Loss: 0.4059 Generator Loss: 3.4650
Epoch 2/2 - Batch 1820/1875:  Discriminator Loss: 0.4033 Generator Loss: 2.8605
Epoch 2/2 - Batch 1830/1875:  Discriminator Loss: 0.3866 Generator Loss: 3.3692
Epoch 2/2 - Batch 1840/1875:  Discriminator Loss: 0.3785 Generator Loss: 3.6240
Epoch 2/2 - Batch 1850/1875:  Discriminator Loss: 0.3870 Generator Loss: 3.4009
Epoch 2/2 - Batch 1860/1875:  Discriminator Loss: 0.3863 Generator Loss: 3.2170
Epoch 2/2 - Batch 1870/1875:  Discriminator Loss: 0.3794 Generator Loss: 3.5259

CelebA

Run your GANs on CelebA. It will take around 20 minutes on the average GPU to run one epoch. You can run the whole epoch or stop when it starts to generate realistic faces.

In [13]:
batch_size = 32
z_dim = 100
learning_rate = 0.0004
beta1 = 0.04


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 1

celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))
with tf.Graph().as_default():
    train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,
          celeba_dataset.shape, celeba_dataset.image_mode)
Epoch 1/1 - Batch 10/6331:  Discriminator Loss: 1.2670 Generator Loss: 0.9216
Epoch 1/1 - Batch 20/6331:  Discriminator Loss: 0.7712 Generator Loss: 4.7479
Epoch 1/1 - Batch 30/6331:  Discriminator Loss: 0.7718 Generator Loss: 4.5263
Epoch 1/1 - Batch 40/6331:  Discriminator Loss: 0.6512 Generator Loss: 2.2650
Epoch 1/1 - Batch 50/6331:  Discriminator Loss: 0.7645 Generator Loss: 1.4812
Epoch 1/1 - Batch 60/6331:  Discriminator Loss: 0.5253 Generator Loss: 2.5043
Epoch 1/1 - Batch 70/6331:  Discriminator Loss: 0.4897 Generator Loss: 3.2072
Epoch 1/1 - Batch 80/6331:  Discriminator Loss: 0.4707 Generator Loss: 5.3432
Epoch 1/1 - Batch 90/6331:  Discriminator Loss: 0.4362 Generator Loss: 3.1290
Epoch 1/1 - Batch 100/6331:  Discriminator Loss: 0.5067 Generator Loss: 4.3770
Epoch 1/1 - Batch 110/6331:  Discriminator Loss: 0.4959 Generator Loss: 5.3532
Epoch 1/1 - Batch 120/6331:  Discriminator Loss: 0.4553 Generator Loss: 5.1446
Epoch 1/1 - Batch 130/6331:  Discriminator Loss: 0.4965 Generator Loss: 5.1726
Epoch 1/1 - Batch 140/6331:  Discriminator Loss: 0.4922 Generator Loss: 5.0090
Epoch 1/1 - Batch 150/6331:  Discriminator Loss: 0.4295 Generator Loss: 4.5938
Epoch 1/1 - Batch 160/6331:  Discriminator Loss: 0.4692 Generator Loss: 2.4782
Epoch 1/1 - Batch 170/6331:  Discriminator Loss: 0.4293 Generator Loss: 3.4971
Epoch 1/1 - Batch 180/6331:  Discriminator Loss: 0.4139 Generator Loss: 3.6649
Epoch 1/1 - Batch 190/6331:  Discriminator Loss: 0.3585 Generator Loss: 4.2375
Epoch 1/1 - Batch 200/6331:  Discriminator Loss: 0.3717 Generator Loss: 3.6608
Epoch 1/1 - Batch 210/6331:  Discriminator Loss: 0.3810 Generator Loss: 3.6371
Epoch 1/1 - Batch 220/6331:  Discriminator Loss: 0.4075 Generator Loss: 2.8610
Epoch 1/1 - Batch 230/6331:  Discriminator Loss: 0.4121 Generator Loss: 3.2059
Epoch 1/1 - Batch 240/6331:  Discriminator Loss: 0.3782 Generator Loss: 3.9313
Epoch 1/1 - Batch 250/6331:  Discriminator Loss: 0.3819 Generator Loss: 3.7208
Epoch 1/1 - Batch 260/6331:  Discriminator Loss: 0.4256 Generator Loss: 2.5878
Epoch 1/1 - Batch 270/6331:  Discriminator Loss: 0.4322 Generator Loss: 2.4261
Epoch 1/1 - Batch 280/6331:  Discriminator Loss: 0.4009 Generator Loss: 5.0722
Epoch 1/1 - Batch 290/6331:  Discriminator Loss: 0.3758 Generator Loss: 4.6749
Epoch 1/1 - Batch 300/6331:  Discriminator Loss: 0.3940 Generator Loss: 3.1655
Epoch 1/1 - Batch 310/6331:  Discriminator Loss: 0.3958 Generator Loss: 4.3086
Epoch 1/1 - Batch 320/6331:  Discriminator Loss: 0.3945 Generator Loss: 2.8775
Epoch 1/1 - Batch 330/6331:  Discriminator Loss: 0.4328 Generator Loss: 2.5893
Epoch 1/1 - Batch 340/6331:  Discriminator Loss: 0.3505 Generator Loss: 4.0446
Epoch 1/1 - Batch 350/6331:  Discriminator Loss: 0.3806 Generator Loss: 3.4263
Epoch 1/1 - Batch 360/6331:  Discriminator Loss: 0.4326 Generator Loss: 6.1311
Epoch 1/1 - Batch 370/6331:  Discriminator Loss: 0.3762 Generator Loss: 4.3567
Epoch 1/1 - Batch 380/6331:  Discriminator Loss: 0.3820 Generator Loss: 3.1739
Epoch 1/1 - Batch 390/6331:  Discriminator Loss: 0.3953 Generator Loss: 2.9973
Epoch 1/1 - Batch 400/6331:  Discriminator Loss: 0.3876 Generator Loss: 3.0392
Epoch 1/1 - Batch 410/6331:  Discriminator Loss: 0.3629 Generator Loss: 4.5765
Epoch 1/1 - Batch 420/6331:  Discriminator Loss: 0.3863 Generator Loss: 3.1760
Epoch 1/1 - Batch 430/6331:  Discriminator Loss: 0.3808 Generator Loss: 3.3860
Epoch 1/1 - Batch 440/6331:  Discriminator Loss: 0.3707 Generator Loss: 4.1751
Epoch 1/1 - Batch 450/6331:  Discriminator Loss: 0.3560 Generator Loss: 4.5211
Epoch 1/1 - Batch 460/6331:  Discriminator Loss: 0.3829 Generator Loss: 5.1021
Epoch 1/1 - Batch 470/6331:  Discriminator Loss: 0.3636 Generator Loss: 3.9006
Epoch 1/1 - Batch 480/6331:  Discriminator Loss: 0.3584 Generator Loss: 3.8695
Epoch 1/1 - Batch 490/6331:  Discriminator Loss: 0.3512 Generator Loss: 4.6878
Epoch 1/1 - Batch 500/6331:  Discriminator Loss: 0.3664 Generator Loss: 4.1909
Epoch 1/1 - Batch 510/6331:  Discriminator Loss: 0.3639 Generator Loss: 4.0988
Epoch 1/1 - Batch 520/6331:  Discriminator Loss: 0.3598 Generator Loss: 3.8230
Epoch 1/1 - Batch 530/6331:  Discriminator Loss: 0.3737 Generator Loss: 3.4493
Epoch 1/1 - Batch 540/6331:  Discriminator Loss: 0.3829 Generator Loss: 3.3073
Epoch 1/1 - Batch 550/6331:  Discriminator Loss: 0.3522 Generator Loss: 4.1015
Epoch 1/1 - Batch 560/6331:  Discriminator Loss: 0.3661 Generator Loss: 3.7952
Epoch 1/1 - Batch 570/6331:  Discriminator Loss: 0.3668 Generator Loss: 3.9503
Epoch 1/1 - Batch 580/6331:  Discriminator Loss: 0.3785 Generator Loss: 3.6374
Epoch 1/1 - Batch 590/6331:  Discriminator Loss: 0.3569 Generator Loss: 4.0206
Epoch 1/1 - Batch 600/6331:  Discriminator Loss: 0.4041 Generator Loss: 5.6328
Epoch 1/1 - Batch 610/6331:  Discriminator Loss: 0.3601 Generator Loss: 4.0790
Epoch 1/1 - Batch 620/6331:  Discriminator Loss: 0.5208 Generator Loss: 7.7330
Epoch 1/1 - Batch 630/6331:  Discriminator Loss: 0.3966 Generator Loss: 5.3322
Epoch 1/1 - Batch 640/6331:  Discriminator Loss: 0.3502 Generator Loss: 4.1258
Epoch 1/1 - Batch 650/6331:  Discriminator Loss: 0.3989 Generator Loss: 5.6607
Epoch 1/1 - Batch 660/6331:  Discriminator Loss: 0.3516 Generator Loss: 4.6859
Epoch 1/1 - Batch 670/6331:  Discriminator Loss: 0.3870 Generator Loss: 4.8947
Epoch 1/1 - Batch 680/6331:  Discriminator Loss: 0.3623 Generator Loss: 4.9969
Epoch 1/1 - Batch 690/6331:  Discriminator Loss: 0.3608 Generator Loss: 4.1995
Epoch 1/1 - Batch 700/6331:  Discriminator Loss: 0.3521 Generator Loss: 4.4061
Epoch 1/1 - Batch 710/6331:  Discriminator Loss: 0.3609 Generator Loss: 4.4180
Epoch 1/1 - Batch 720/6331:  Discriminator Loss: 0.3642 Generator Loss: 3.5230
Epoch 1/1 - Batch 730/6331:  Discriminator Loss: 0.3444 Generator Loss: 4.6482
Epoch 1/1 - Batch 740/6331:  Discriminator Loss: 0.3521 Generator Loss: 4.0019
Epoch 1/1 - Batch 750/6331:  Discriminator Loss: 0.3683 Generator Loss: 3.6121
Epoch 1/1 - Batch 760/6331:  Discriminator Loss: 0.3631 Generator Loss: 4.6436
Epoch 1/1 - Batch 770/6331:  Discriminator Loss: 0.3478 Generator Loss: 4.5222
Epoch 1/1 - Batch 780/6331:  Discriminator Loss: 0.3600 Generator Loss: 4.3934
Epoch 1/1 - Batch 790/6331:  Discriminator Loss: 0.3693 Generator Loss: 3.5612
Epoch 1/1 - Batch 800/6331:  Discriminator Loss: 0.3541 Generator Loss: 4.2227
Epoch 1/1 - Batch 810/6331:  Discriminator Loss: 0.3874 Generator Loss: 3.1100
Epoch 1/1 - Batch 820/6331:  Discriminator Loss: 0.3826 Generator Loss: 3.2421
Epoch 1/1 - Batch 830/6331:  Discriminator Loss: 0.3879 Generator Loss: 5.4866
Epoch 1/1 - Batch 840/6331:  Discriminator Loss: 0.3893 Generator Loss: 5.1616
Epoch 1/1 - Batch 850/6331:  Discriminator Loss: 0.3582 Generator Loss: 4.1822
Epoch 1/1 - Batch 860/6331:  Discriminator Loss: 0.3846 Generator Loss: 3.3704
Epoch 1/1 - Batch 870/6331:  Discriminator Loss: 0.3668 Generator Loss: 3.9667
Epoch 1/1 - Batch 880/6331:  Discriminator Loss: 0.3462 Generator Loss: 4.6865
Epoch 1/1 - Batch 890/6331:  Discriminator Loss: 0.3610 Generator Loss: 4.8214
Epoch 1/1 - Batch 900/6331:  Discriminator Loss: 0.3651 Generator Loss: 3.8690
Epoch 1/1 - Batch 910/6331:  Discriminator Loss: 0.3402 Generator Loss: 4.7510
Epoch 1/1 - Batch 920/6331:  Discriminator Loss: 0.3452 Generator Loss: 5.0058
Epoch 1/1 - Batch 930/6331:  Discriminator Loss: 0.3483 Generator Loss: 4.3252
Epoch 1/1 - Batch 940/6331:  Discriminator Loss: 0.3511 Generator Loss: 4.9691
Epoch 1/1 - Batch 950/6331:  Discriminator Loss: 0.3952 Generator Loss: 5.5337
Epoch 1/1 - Batch 960/6331:  Discriminator Loss: 0.3632 Generator Loss: 3.7352
Epoch 1/1 - Batch 970/6331:  Discriminator Loss: 0.3759 Generator Loss: 3.4968
Epoch 1/1 - Batch 980/6331:  Discriminator Loss: 0.4143 Generator Loss: 2.6397
Epoch 1/1 - Batch 990/6331:  Discriminator Loss: 0.3673 Generator Loss: 5.1610
Epoch 1/1 - Batch 1000/6331:  Discriminator Loss: 0.3663 Generator Loss: 4.8151
Epoch 1/1 - Batch 1010/6331:  Discriminator Loss: 0.3684 Generator Loss: 4.1639
Epoch 1/1 - Batch 1020/6331:  Discriminator Loss: 0.3592 Generator Loss: 4.4014
Epoch 1/1 - Batch 1030/6331:  Discriminator Loss: 0.3760 Generator Loss: 3.4764
Epoch 1/1 - Batch 1040/6331:  Discriminator Loss: 0.3483 Generator Loss: 4.9688
Epoch 1/1 - Batch 1050/6331:  Discriminator Loss: 0.3382 Generator Loss: 5.0263
Epoch 1/1 - Batch 1060/6331:  Discriminator Loss: 0.3462 Generator Loss: 4.6940
Epoch 1/1 - Batch 1070/6331:  Discriminator Loss: 0.3477 Generator Loss: 4.4203
Epoch 1/1 - Batch 1080/6331:  Discriminator Loss: 0.3463 Generator Loss: 5.3768
Epoch 1/1 - Batch 1090/6331:  Discriminator Loss: 0.3356 Generator Loss: 5.1510
Epoch 1/1 - Batch 1100/6331:  Discriminator Loss: 0.3431 Generator Loss: 4.7330
Epoch 1/1 - Batch 1110/6331:  Discriminator Loss: 0.3473 Generator Loss: 4.0090
Epoch 1/1 - Batch 1120/6331:  Discriminator Loss: 0.3714 Generator Loss: 4.8965
Epoch 1/1 - Batch 1130/6331:  Discriminator Loss: 0.3439 Generator Loss: 4.8930
Epoch 1/1 - Batch 1140/6331:  Discriminator Loss: 0.3529 Generator Loss: 4.2972
Epoch 1/1 - Batch 1150/6331:  Discriminator Loss: 0.3464 Generator Loss: 4.8075
Epoch 1/1 - Batch 1160/6331:  Discriminator Loss: 0.3589 Generator Loss: 5.2815
Epoch 1/1 - Batch 1170/6331:  Discriminator Loss: 0.4244 Generator Loss: 5.4845
Epoch 1/1 - Batch 1180/6331:  Discriminator Loss: 0.3758 Generator Loss: 3.6778
Epoch 1/1 - Batch 1190/6331:  Discriminator Loss: 0.3734 Generator Loss: 3.5996
Epoch 1/1 - Batch 1200/6331:  Discriminator Loss: 0.3588 Generator Loss: 5.0053
Epoch 1/1 - Batch 1210/6331:  Discriminator Loss: 0.3810 Generator Loss: 5.0327
Epoch 1/1 - Batch 1220/6331:  Discriminator Loss: 0.3652 Generator Loss: 4.9893
Epoch 1/1 - Batch 1230/6331:  Discriminator Loss: 0.3669 Generator Loss: 4.1109
Epoch 1/1 - Batch 1240/6331:  Discriminator Loss: 0.3773 Generator Loss: 3.5610
Epoch 1/1 - Batch 1250/6331:  Discriminator Loss: 0.3568 Generator Loss: 4.7805
Epoch 1/1 - Batch 1260/6331:  Discriminator Loss: 0.3428 Generator Loss: 4.4658
Epoch 1/1 - Batch 1270/6331:  Discriminator Loss: 0.4198 Generator Loss: 6.0965
Epoch 1/1 - Batch 1280/6331:  Discriminator Loss: 0.3549 Generator Loss: 4.7825
Epoch 1/1 - Batch 1290/6331:  Discriminator Loss: 0.3762 Generator Loss: 6.0819
Epoch 1/1 - Batch 1300/6331:  Discriminator Loss: 0.3799 Generator Loss: 5.5602
Epoch 1/1 - Batch 1310/6331:  Discriminator Loss: 0.3452 Generator Loss: 4.7414
Epoch 1/1 - Batch 1320/6331:  Discriminator Loss: 0.3734 Generator Loss: 3.7545
Epoch 1/1 - Batch 1330/6331:  Discriminator Loss: 0.3476 Generator Loss: 5.1256
Epoch 1/1 - Batch 1340/6331:  Discriminator Loss: 0.3540 Generator Loss: 4.8291
Epoch 1/1 - Batch 1350/6331:  Discriminator Loss: 0.3859 Generator Loss: 4.9689
Epoch 1/1 - Batch 1360/6331:  Discriminator Loss: 0.3558 Generator Loss: 4.5063
Epoch 1/1 - Batch 1370/6331:  Discriminator Loss: 0.3416 Generator Loss: 4.9492
Epoch 1/1 - Batch 1380/6331:  Discriminator Loss: 0.3432 Generator Loss: 5.3746
Epoch 1/1 - Batch 1390/6331:  Discriminator Loss: 0.3870 Generator Loss: 5.1792
Epoch 1/1 - Batch 1400/6331:  Discriminator Loss: 0.3372 Generator Loss: 4.9429
Epoch 1/1 - Batch 1410/6331:  Discriminator Loss: 0.4103 Generator Loss: 6.2588
Epoch 1/1 - Batch 1420/6331:  Discriminator Loss: 0.3728 Generator Loss: 3.3450
Epoch 1/1 - Batch 1430/6331:  Discriminator Loss: 0.3493 Generator Loss: 4.5754
Epoch 1/1 - Batch 1440/6331:  Discriminator Loss: 0.3451 Generator Loss: 4.4768
Epoch 1/1 - Batch 1450/6331:  Discriminator Loss: 0.3591 Generator Loss: 3.8565
Epoch 1/1 - Batch 1460/6331:  Discriminator Loss: 0.3588 Generator Loss: 5.2654
Epoch 1/1 - Batch 1470/6331:  Discriminator Loss: 0.3398 Generator Loss: 4.8013
Epoch 1/1 - Batch 1480/6331:  Discriminator Loss: 0.3410 Generator Loss: 5.2929
Epoch 1/1 - Batch 1490/6331:  Discriminator Loss: 0.4009 Generator Loss: 5.8827
Epoch 1/1 - Batch 1500/6331:  Discriminator Loss: 0.3509 Generator Loss: 4.3021
Epoch 1/1 - Batch 1510/6331:  Discriminator Loss: 0.3542 Generator Loss: 3.9897
Epoch 1/1 - Batch 1520/6331:  Discriminator Loss: 0.3465 Generator Loss: 4.5462
Epoch 1/1 - Batch 1530/6331:  Discriminator Loss: 0.3798 Generator Loss: 5.2231
Epoch 1/1 - Batch 1540/6331:  Discriminator Loss: 0.3484 Generator Loss: 4.4072
Epoch 1/1 - Batch 1550/6331:  Discriminator Loss: 0.3679 Generator Loss: 4.0546
Epoch 1/1 - Batch 1560/6331:  Discriminator Loss: 0.3406 Generator Loss: 4.8197
Epoch 1/1 - Batch 1570/6331:  Discriminator Loss: 0.3791 Generator Loss: 3.1991
Epoch 1/1 - Batch 1580/6331:  Discriminator Loss: 0.4391 Generator Loss: 2.7628
Epoch 1/1 - Batch 1590/6331:  Discriminator Loss: 0.4248 Generator Loss: 2.9367
Epoch 1/1 - Batch 1600/6331:  Discriminator Loss: 0.4244 Generator Loss: 3.1528
Epoch 1/1 - Batch 1610/6331:  Discriminator Loss: 0.4260 Generator Loss: 2.5593
Epoch 1/1 - Batch 1620/6331:  Discriminator Loss: 0.4294 Generator Loss: 2.4766
Epoch 1/1 - Batch 1630/6331:  Discriminator Loss: 0.3993 Generator Loss: 3.3372
Epoch 1/1 - Batch 1640/6331:  Discriminator Loss: 0.6452 Generator Loss: 5.1977
Epoch 1/1 - Batch 1650/6331:  Discriminator Loss: 0.4610 Generator Loss: 3.8727
Epoch 1/1 - Batch 1660/6331:  Discriminator Loss: 0.4026 Generator Loss: 2.8264
Epoch 1/1 - Batch 1670/6331:  Discriminator Loss: 0.3894 Generator Loss: 3.1936
Epoch 1/1 - Batch 1680/6331:  Discriminator Loss: 0.5472 Generator Loss: 5.8908
Epoch 1/1 - Batch 1690/6331:  Discriminator Loss: 0.4064 Generator Loss: 4.0180
Epoch 1/1 - Batch 1700/6331:  Discriminator Loss: 0.4458 Generator Loss: 4.1145
Epoch 1/1 - Batch 1710/6331:  Discriminator Loss: 0.3874 Generator Loss: 3.5178
Epoch 1/1 - Batch 1720/6331:  Discriminator Loss: 0.4210 Generator Loss: 4.3953
Epoch 1/1 - Batch 1730/6331:  Discriminator Loss: 0.4129 Generator Loss: 4.1966
Epoch 1/1 - Batch 1740/6331:  Discriminator Loss: 0.3987 Generator Loss: 2.9537
Epoch 1/1 - Batch 1750/6331:  Discriminator Loss: 0.3983 Generator Loss: 2.7740
Epoch 1/1 - Batch 1760/6331:  Discriminator Loss: 0.4035 Generator Loss: 2.9356
Epoch 1/1 - Batch 1770/6331:  Discriminator Loss: 0.4006 Generator Loss: 3.5437
Epoch 1/1 - Batch 1780/6331:  Discriminator Loss: 0.4374 Generator Loss: 4.2593
Epoch 1/1 - Batch 1790/6331:  Discriminator Loss: 0.3956 Generator Loss: 3.4768
Epoch 1/1 - Batch 1800/6331:  Discriminator Loss: 0.4462 Generator Loss: 4.2224
Epoch 1/1 - Batch 1810/6331:  Discriminator Loss: 0.4441 Generator Loss: 2.3179
Epoch 1/1 - Batch 1820/6331:  Discriminator Loss: 0.3760 Generator Loss: 3.3918
Epoch 1/1 - Batch 1830/6331:  Discriminator Loss: 0.4056 Generator Loss: 3.7739
Epoch 1/1 - Batch 1840/6331:  Discriminator Loss: 0.4177 Generator Loss: 3.6214
Epoch 1/1 - Batch 1850/6331:  Discriminator Loss: 0.3969 Generator Loss: 3.3016
Epoch 1/1 - Batch 1860/6331:  Discriminator Loss: 0.3887 Generator Loss: 3.0345
Epoch 1/1 - Batch 1870/6331:  Discriminator Loss: 0.3850 Generator Loss: 3.7001
Epoch 1/1 - Batch 1880/6331:  Discriminator Loss: 0.4273 Generator Loss: 4.0317
Epoch 1/1 - Batch 1890/6331:  Discriminator Loss: 0.4276 Generator Loss: 3.7803
Epoch 1/1 - Batch 1900/6331:  Discriminator Loss: 0.4523 Generator Loss: 4.2854
Epoch 1/1 - Batch 1910/6331:  Discriminator Loss: 0.4926 Generator Loss: 4.6076
Epoch 1/1 - Batch 1920/6331:  Discriminator Loss: 0.3924 Generator Loss: 3.2004
Epoch 1/1 - Batch 1930/6331:  Discriminator Loss: 0.5243 Generator Loss: 4.9807
Epoch 1/1 - Batch 1940/6331:  Discriminator Loss: 0.3992 Generator Loss: 3.1539
Epoch 1/1 - Batch 1950/6331:  Discriminator Loss: 0.4586 Generator Loss: 4.1265
Epoch 1/1 - Batch 1960/6331:  Discriminator Loss: 0.3997 Generator Loss: 2.9825
Epoch 1/1 - Batch 1970/6331:  Discriminator Loss: 0.4943 Generator Loss: 4.3645
Epoch 1/1 - Batch 1980/6331:  Discriminator Loss: 0.4070 Generator Loss: 2.8055
Epoch 1/1 - Batch 1990/6331:  Discriminator Loss: 0.4191 Generator Loss: 2.5594
Epoch 1/1 - Batch 2000/6331:  Discriminator Loss: 0.4254 Generator Loss: 3.6318
Epoch 1/1 - Batch 2010/6331:  Discriminator Loss: 0.4429 Generator Loss: 4.0387
Epoch 1/1 - Batch 2020/6331:  Discriminator Loss: 0.4482 Generator Loss: 4.1465
Epoch 1/1 - Batch 2030/6331:  Discriminator Loss: 0.4207 Generator Loss: 3.5692
Epoch 1/1 - Batch 2040/6331:  Discriminator Loss: 0.4272 Generator Loss: 3.8435
Epoch 1/1 - Batch 2050/6331:  Discriminator Loss: 0.4020 Generator Loss: 2.8624
Epoch 1/1 - Batch 2060/6331:  Discriminator Loss: 0.4287 Generator Loss: 2.3735
Epoch 1/1 - Batch 2070/6331:  Discriminator Loss: 0.4046 Generator Loss: 2.7202
Epoch 1/1 - Batch 2080/6331:  Discriminator Loss: 0.4248 Generator Loss: 2.5485
Epoch 1/1 - Batch 2090/6331:  Discriminator Loss: 0.4149 Generator Loss: 2.4862
Epoch 1/1 - Batch 2100/6331:  Discriminator Loss: 0.4208 Generator Loss: 2.5818
Epoch 1/1 - Batch 2110/6331:  Discriminator Loss: 0.4089 Generator Loss: 2.6902
Epoch 1/1 - Batch 2120/6331:  Discriminator Loss: 0.4313 Generator Loss: 2.6018
Epoch 1/1 - Batch 2130/6331:  Discriminator Loss: 0.4347 Generator Loss: 2.4897
Epoch 1/1 - Batch 2140/6331:  Discriminator Loss: 0.4251 Generator Loss: 2.5032
Epoch 1/1 - Batch 2150/6331:  Discriminator Loss: 0.4305 Generator Loss: 2.4536
Epoch 1/1 - Batch 2160/6331:  Discriminator Loss: 0.4220 Generator Loss: 2.5093
Epoch 1/1 - Batch 2170/6331:  Discriminator Loss: 0.3907 Generator Loss: 2.9322
Epoch 1/1 - Batch 2180/6331:  Discriminator Loss: 0.4054 Generator Loss: 2.7805
Epoch 1/1 - Batch 2190/6331:  Discriminator Loss: 0.4059 Generator Loss: 2.9589
Epoch 1/1 - Batch 2200/6331:  Discriminator Loss: 0.3889 Generator Loss: 3.0459
Epoch 1/1 - Batch 2210/6331:  Discriminator Loss: 0.4354 Generator Loss: 2.3942
Epoch 1/1 - Batch 2220/6331:  Discriminator Loss: 0.4123 Generator Loss: 2.5551
Epoch 1/1 - Batch 2230/6331:  Discriminator Loss: 0.4162 Generator Loss: 2.6029
Epoch 1/1 - Batch 2240/6331:  Discriminator Loss: 0.4169 Generator Loss: 2.4870
Epoch 1/1 - Batch 2250/6331:  Discriminator Loss: 0.4110 Generator Loss: 2.5945
Epoch 1/1 - Batch 2260/6331:  Discriminator Loss: 0.4124 Generator Loss: 2.6661
Epoch 1/1 - Batch 2270/6331:  Discriminator Loss: 0.4009 Generator Loss: 2.7673
Epoch 1/1 - Batch 2280/6331:  Discriminator Loss: 0.3985 Generator Loss: 2.8256
Epoch 1/1 - Batch 2290/6331:  Discriminator Loss: 0.4043 Generator Loss: 3.9290
Epoch 1/1 - Batch 2300/6331:  Discriminator Loss: 0.3918 Generator Loss: 3.2207
Epoch 1/1 - Batch 2310/6331:  Discriminator Loss: 0.4519 Generator Loss: 4.3979
Epoch 1/1 - Batch 2320/6331:  Discriminator Loss: 0.4279 Generator Loss: 4.1783
Epoch 1/1 - Batch 2330/6331:  Discriminator Loss: 0.3941 Generator Loss: 3.1014
Epoch 1/1 - Batch 2340/6331:  Discriminator Loss: 0.4073 Generator Loss: 3.7920
Epoch 1/1 - Batch 2350/6331:  Discriminator Loss: 0.4035 Generator Loss: 3.6122
Epoch 1/1 - Batch 2360/6331:  Discriminator Loss: 0.4505 Generator Loss: 4.0857
Epoch 1/1 - Batch 2370/6331:  Discriminator Loss: 0.4677 Generator Loss: 4.3389
Epoch 1/1 - Batch 2380/6331:  Discriminator Loss: 0.3991 Generator Loss: 3.6674
Epoch 1/1 - Batch 2390/6331:  Discriminator Loss: 0.4099 Generator Loss: 3.6201
Epoch 1/1 - Batch 2400/6331:  Discriminator Loss: 0.3873 Generator Loss: 3.2169
Epoch 1/1 - Batch 2410/6331:  Discriminator Loss: 0.3866 Generator Loss: 3.0582
Epoch 1/1 - Batch 2420/6331:  Discriminator Loss: 0.3962 Generator Loss: 3.5921
Epoch 1/1 - Batch 2430/6331:  Discriminator Loss: 0.4343 Generator Loss: 4.1690
Epoch 1/1 - Batch 2440/6331:  Discriminator Loss: 0.3949 Generator Loss: 3.6730
Epoch 1/1 - Batch 2450/6331:  Discriminator Loss: 0.4204 Generator Loss: 4.1388
Epoch 1/1 - Batch 2460/6331:  Discriminator Loss: 0.4525 Generator Loss: 4.1342
Epoch 1/1 - Batch 2470/6331:  Discriminator Loss: 0.4156 Generator Loss: 3.9870
Epoch 1/1 - Batch 2480/6331:  Discriminator Loss: 0.3892 Generator Loss: 3.4602
Epoch 1/1 - Batch 2490/6331:  Discriminator Loss: 0.4277 Generator Loss: 4.0846
Epoch 1/1 - Batch 2500/6331:  Discriminator Loss: 0.4074 Generator Loss: 3.7995
Epoch 1/1 - Batch 2510/6331:  Discriminator Loss: 0.4113 Generator Loss: 4.0299
Epoch 1/1 - Batch 2520/6331:  Discriminator Loss: 0.3961 Generator Loss: 3.0610
Epoch 1/1 - Batch 2530/6331:  Discriminator Loss: 0.5571 Generator Loss: 5.6067
Epoch 1/1 - Batch 2540/6331:  Discriminator Loss: 0.3893 Generator Loss: 3.1958
Epoch 1/1 - Batch 2550/6331:  Discriminator Loss: 0.4039 Generator Loss: 3.6559
Epoch 1/1 - Batch 2560/6331:  Discriminator Loss: 0.4187 Generator Loss: 2.4977
Epoch 1/1 - Batch 2570/6331:  Discriminator Loss: 0.3938 Generator Loss: 3.0511
Epoch 1/1 - Batch 2580/6331:  Discriminator Loss: 0.3870 Generator Loss: 3.2379
Epoch 1/1 - Batch 2590/6331:  Discriminator Loss: 0.4483 Generator Loss: 4.5073
Epoch 1/1 - Batch 2600/6331:  Discriminator Loss: 0.4089 Generator Loss: 3.5355
Epoch 1/1 - Batch 2610/6331:  Discriminator Loss: 0.3903 Generator Loss: 3.1191
Epoch 1/1 - Batch 2620/6331:  Discriminator Loss: 0.4038 Generator Loss: 3.4269
Epoch 1/1 - Batch 2630/6331:  Discriminator Loss: 0.4126 Generator Loss: 3.5903
Epoch 1/1 - Batch 2640/6331:  Discriminator Loss: 0.4426 Generator Loss: 4.3205
Epoch 1/1 - Batch 2650/6331:  Discriminator Loss: 0.4418 Generator Loss: 4.0130
Epoch 1/1 - Batch 2660/6331:  Discriminator Loss: 0.4129 Generator Loss: 3.8491
Epoch 1/1 - Batch 2670/6331:  Discriminator Loss: 0.4387 Generator Loss: 4.0424
Epoch 1/1 - Batch 2680/6331:  Discriminator Loss: 0.4133 Generator Loss: 3.6046
Epoch 1/1 - Batch 2690/6331:  Discriminator Loss: 0.3999 Generator Loss: 3.2514
Epoch 1/1 - Batch 2700/6331:  Discriminator Loss: 0.3974 Generator Loss: 3.2890
Epoch 1/1 - Batch 2710/6331:  Discriminator Loss: 0.3943 Generator Loss: 3.2795
Epoch 1/1 - Batch 2720/6331:  Discriminator Loss: 0.3952 Generator Loss: 3.3620
Epoch 1/1 - Batch 2730/6331:  Discriminator Loss: 0.3965 Generator Loss: 2.7937
Epoch 1/1 - Batch 2740/6331:  Discriminator Loss: 0.4310 Generator Loss: 2.5565
Epoch 1/1 - Batch 2750/6331:  Discriminator Loss: 0.4142 Generator Loss: 2.6398
Epoch 1/1 - Batch 2760/6331:  Discriminator Loss: 0.3905 Generator Loss: 2.9606
Epoch 1/1 - Batch 2770/6331:  Discriminator Loss: 0.4115 Generator Loss: 2.6668
Epoch 1/1 - Batch 2780/6331:  Discriminator Loss: 0.4014 Generator Loss: 2.8283
Epoch 1/1 - Batch 2790/6331:  Discriminator Loss: 0.3991 Generator Loss: 3.4652
Epoch 1/1 - Batch 2800/6331:  Discriminator Loss: 0.4074 Generator Loss: 3.7756
Epoch 1/1 - Batch 2810/6331:  Discriminator Loss: 0.3879 Generator Loss: 3.0461
Epoch 1/1 - Batch 2820/6331:  Discriminator Loss: 0.3925 Generator Loss: 3.3106
Epoch 1/1 - Batch 2830/6331:  Discriminator Loss: 0.3899 Generator Loss: 3.1038
Epoch 1/1 - Batch 2840/6331:  Discriminator Loss: 0.4081 Generator Loss: 3.6829
Epoch 1/1 - Batch 2850/6331:  Discriminator Loss: 0.4213 Generator Loss: 3.8910
Epoch 1/1 - Batch 2860/6331:  Discriminator Loss: 0.4057 Generator Loss: 3.6882
Epoch 1/1 - Batch 2870/6331:  Discriminator Loss: 0.3974 Generator Loss: 3.7363
Epoch 1/1 - Batch 2880/6331:  Discriminator Loss: 0.3952 Generator Loss: 3.0612
Epoch 1/1 - Batch 2890/6331:  Discriminator Loss: 0.4018 Generator Loss: 2.7882
Epoch 1/1 - Batch 2900/6331:  Discriminator Loss: 0.4149 Generator Loss: 2.5520
Epoch 1/1 - Batch 2910/6331:  Discriminator Loss: 0.4125 Generator Loss: 2.5680
Epoch 1/1 - Batch 2920/6331:  Discriminator Loss: 0.3936 Generator Loss: 2.9323
Epoch 1/1 - Batch 2930/6331:  Discriminator Loss: 0.4050 Generator Loss: 2.7314
Epoch 1/1 - Batch 2940/6331:  Discriminator Loss: 0.4072 Generator Loss: 2.6855
Epoch 1/1 - Batch 2950/6331:  Discriminator Loss: 0.4238 Generator Loss: 2.5383
Epoch 1/1 - Batch 2960/6331:  Discriminator Loss: 0.4020 Generator Loss: 2.7311
Epoch 1/1 - Batch 2970/6331:  Discriminator Loss: 0.4145 Generator Loss: 2.5861
Epoch 1/1 - Batch 2980/6331:  Discriminator Loss: 0.4109 Generator Loss: 2.5662
Epoch 1/1 - Batch 2990/6331:  Discriminator Loss: 0.4186 Generator Loss: 2.4683
Epoch 1/1 - Batch 3000/6331:  Discriminator Loss: 0.4087 Generator Loss: 2.6604
Epoch 1/1 - Batch 3010/6331:  Discriminator Loss: 0.4208 Generator Loss: 3.7541
Epoch 1/1 - Batch 3020/6331:  Discriminator Loss: 0.3904 Generator Loss: 3.1184
Epoch 1/1 - Batch 3030/6331:  Discriminator Loss: 0.4056 Generator Loss: 2.7119
Epoch 1/1 - Batch 3040/6331:  Discriminator Loss: 0.3982 Generator Loss: 2.8403
Epoch 1/1 - Batch 3050/6331:  Discriminator Loss: 0.4071 Generator Loss: 3.9194
Epoch 1/1 - Batch 3060/6331:  Discriminator Loss: 0.4210 Generator Loss: 3.8421
Epoch 1/1 - Batch 3070/6331:  Discriminator Loss: 0.3883 Generator Loss: 3.1650
Epoch 1/1 - Batch 3080/6331:  Discriminator Loss: 0.4078 Generator Loss: 3.4530
Epoch 1/1 - Batch 3090/6331:  Discriminator Loss: 0.3881 Generator Loss: 3.1809
Epoch 1/1 - Batch 3100/6331:  Discriminator Loss: 0.4284 Generator Loss: 2.5062
Epoch 1/1 - Batch 3110/6331:  Discriminator Loss: 0.4044 Generator Loss: 3.3548
Epoch 1/1 - Batch 3120/6331:  Discriminator Loss: 0.3966 Generator Loss: 3.4588
Epoch 1/1 - Batch 3130/6331:  Discriminator Loss: 0.3912 Generator Loss: 3.2914
Epoch 1/1 - Batch 3140/6331:  Discriminator Loss: 0.3947 Generator Loss: 2.8810
Epoch 1/1 - Batch 3150/6331:  Discriminator Loss: 0.4052 Generator Loss: 2.6343
Epoch 1/1 - Batch 3160/6331:  Discriminator Loss: 0.4102 Generator Loss: 2.6540
Epoch 1/1 - Batch 3170/6331:  Discriminator Loss: 0.4105 Generator Loss: 2.6190
Epoch 1/1 - Batch 3180/6331:  Discriminator Loss: 0.4209 Generator Loss: 2.4470
Epoch 1/1 - Batch 3190/6331:  Discriminator Loss: 0.4028 Generator Loss: 2.7346
Epoch 1/1 - Batch 3200/6331:  Discriminator Loss: 0.4112 Generator Loss: 2.5807
Epoch 1/1 - Batch 3210/6331:  Discriminator Loss: 0.4163 Generator Loss: 2.5215
Epoch 1/1 - Batch 3220/6331:  Discriminator Loss: 0.4163 Generator Loss: 2.5123
Epoch 1/1 - Batch 3230/6331:  Discriminator Loss: 0.4074 Generator Loss: 2.6283
Epoch 1/1 - Batch 3240/6331:  Discriminator Loss: 0.4063 Generator Loss: 2.7753
Epoch 1/1 - Batch 3250/6331:  Discriminator Loss: 0.4409 Generator Loss: 2.3311
Epoch 1/1 - Batch 3260/6331:  Discriminator Loss: 0.4316 Generator Loss: 2.3616
Epoch 1/1 - Batch 3270/6331:  Discriminator Loss: 0.4060 Generator Loss: 3.5601
Epoch 1/1 - Batch 3280/6331:  Discriminator Loss: 0.3969 Generator Loss: 3.4747
Epoch 1/1 - Batch 3290/6331:  Discriminator Loss: 0.4376 Generator Loss: 4.2591
Epoch 1/1 - Batch 3300/6331:  Discriminator Loss: 0.3990 Generator Loss: 3.2299
Epoch 1/1 - Batch 3310/6331:  Discriminator Loss: 0.3984 Generator Loss: 3.2413
Epoch 1/1 - Batch 3320/6331:  Discriminator Loss: 0.4007 Generator Loss: 3.4961
Epoch 1/1 - Batch 3330/6331:  Discriminator Loss: 0.4069 Generator Loss: 3.4255
Epoch 1/1 - Batch 3340/6331:  Discriminator Loss: 0.4176 Generator Loss: 3.7051
Epoch 1/1 - Batch 3350/6331:  Discriminator Loss: 0.3998 Generator Loss: 2.8016
Epoch 1/1 - Batch 3360/6331:  Discriminator Loss: 0.3948 Generator Loss: 3.0089
Epoch 1/1 - Batch 3370/6331:  Discriminator Loss: 0.3901 Generator Loss: 3.1390
Epoch 1/1 - Batch 3380/6331:  Discriminator Loss: 0.4005 Generator Loss: 2.6938
Epoch 1/1 - Batch 3390/6331:  Discriminator Loss: 0.4188 Generator Loss: 2.4791
Epoch 1/1 - Batch 3400/6331:  Discriminator Loss: 0.4089 Generator Loss: 2.6480
Epoch 1/1 - Batch 3410/6331:  Discriminator Loss: 0.4059 Generator Loss: 2.7462
Epoch 1/1 - Batch 3420/6331:  Discriminator Loss: 0.4463 Generator Loss: 2.3395
Epoch 1/1 - Batch 3430/6331:  Discriminator Loss: 0.4051 Generator Loss: 2.8113
Epoch 1/1 - Batch 3440/6331:  Discriminator Loss: 0.3927 Generator Loss: 3.2420
Epoch 1/1 - Batch 3450/6331:  Discriminator Loss: 0.4005 Generator Loss: 3.5929
Epoch 1/1 - Batch 3460/6331:  Discriminator Loss: 0.4127 Generator Loss: 3.8429
Epoch 1/1 - Batch 3470/6331:  Discriminator Loss: 0.3916 Generator Loss: 3.0274
Epoch 1/1 - Batch 3480/6331:  Discriminator Loss: 0.4247 Generator Loss: 2.5260
Epoch 1/1 - Batch 3490/6331:  Discriminator Loss: 0.4162 Generator Loss: 2.6704
Epoch 1/1 - Batch 3500/6331:  Discriminator Loss: 0.4072 Generator Loss: 3.5552
Epoch 1/1 - Batch 3510/6331:  Discriminator Loss: 0.3905 Generator Loss: 3.0648
Epoch 1/1 - Batch 3520/6331:  Discriminator Loss: 0.4722 Generator Loss: 4.3902
Epoch 1/1 - Batch 3530/6331:  Discriminator Loss: 0.4074 Generator Loss: 3.3412
Epoch 1/1 - Batch 3540/6331:  Discriminator Loss: 0.4136 Generator Loss: 2.5609
Epoch 1/1 - Batch 3550/6331:  Discriminator Loss: 0.3981 Generator Loss: 3.4518
Epoch 1/1 - Batch 3560/6331:  Discriminator Loss: 0.4148 Generator Loss: 3.5060
Epoch 1/1 - Batch 3570/6331:  Discriminator Loss: 0.4139 Generator Loss: 3.4930
Epoch 1/1 - Batch 3580/6331:  Discriminator Loss: 0.4251 Generator Loss: 3.5877
Epoch 1/1 - Batch 3590/6331:  Discriminator Loss: 0.4186 Generator Loss: 3.8860
Epoch 1/1 - Batch 3600/6331:  Discriminator Loss: 0.3967 Generator Loss: 3.1820
Epoch 1/1 - Batch 3610/6331:  Discriminator Loss: 0.3995 Generator Loss: 3.5282
Epoch 1/1 - Batch 3620/6331:  Discriminator Loss: 0.3981 Generator Loss: 3.6881
Epoch 1/1 - Batch 3630/6331:  Discriminator Loss: 0.3991 Generator Loss: 2.8138
Epoch 1/1 - Batch 3640/6331:  Discriminator Loss: 0.4663 Generator Loss: 4.9875
Epoch 1/1 - Batch 3650/6331:  Discriminator Loss: 0.4079 Generator Loss: 3.9026
Epoch 1/1 - Batch 3660/6331:  Discriminator Loss: 0.4042 Generator Loss: 3.4256
Epoch 1/1 - Batch 3670/6331:  Discriminator Loss: 0.4076 Generator Loss: 3.4297
Epoch 1/1 - Batch 3680/6331:  Discriminator Loss: 0.4001 Generator Loss: 2.7600
Epoch 1/1 - Batch 3690/6331:  Discriminator Loss: 0.3998 Generator Loss: 2.8456
Epoch 1/1 - Batch 3700/6331:  Discriminator Loss: 0.4049 Generator Loss: 2.7386
Epoch 1/1 - Batch 3710/6331:  Discriminator Loss: 0.4038 Generator Loss: 2.8021
Epoch 1/1 - Batch 3720/6331:  Discriminator Loss: 0.4087 Generator Loss: 2.7621
Epoch 1/1 - Batch 3730/6331:  Discriminator Loss: 0.4156 Generator Loss: 2.5992
Epoch 1/1 - Batch 3740/6331:  Discriminator Loss: 0.4200 Generator Loss: 2.5028
Epoch 1/1 - Batch 3750/6331:  Discriminator Loss: 0.4303 Generator Loss: 2.3602
Epoch 1/1 - Batch 3760/6331:  Discriminator Loss: 0.3998 Generator Loss: 2.7601
Epoch 1/1 - Batch 3770/6331:  Discriminator Loss: 0.4199 Generator Loss: 2.5262
Epoch 1/1 - Batch 3780/6331:  Discriminator Loss: 0.3984 Generator Loss: 2.9408
Epoch 1/1 - Batch 3790/6331:  Discriminator Loss: 0.4247 Generator Loss: 2.4736
Epoch 1/1 - Batch 3800/6331:  Discriminator Loss: 0.3959 Generator Loss: 3.0248
Epoch 1/1 - Batch 3810/6331:  Discriminator Loss: 0.4363 Generator Loss: 2.4348
Epoch 1/1 - Batch 3820/6331:  Discriminator Loss: 0.4011 Generator Loss: 2.9721
Epoch 1/1 - Batch 3830/6331:  Discriminator Loss: 0.4022 Generator Loss: 3.3493
Epoch 1/1 - Batch 3840/6331:  Discriminator Loss: 0.3917 Generator Loss: 3.3738
Epoch 1/1 - Batch 3850/6331:  Discriminator Loss: 0.3956 Generator Loss: 2.9708
Epoch 1/1 - Batch 3860/6331:  Discriminator Loss: 0.3983 Generator Loss: 3.1583
Epoch 1/1 - Batch 3870/6331:  Discriminator Loss: 0.4014 Generator Loss: 2.9585
Epoch 1/1 - Batch 3880/6331:  Discriminator Loss: 0.4147 Generator Loss: 2.5243
Epoch 1/1 - Batch 3890/6331:  Discriminator Loss: 0.3984 Generator Loss: 2.9000
Epoch 1/1 - Batch 3900/6331:  Discriminator Loss: 0.4137 Generator Loss: 2.5585
Epoch 1/1 - Batch 3910/6331:  Discriminator Loss: 0.4064 Generator Loss: 2.6145
Epoch 1/1 - Batch 3920/6331:  Discriminator Loss: 0.4065 Generator Loss: 2.6427
Epoch 1/1 - Batch 3930/6331:  Discriminator Loss: 0.4165 Generator Loss: 2.5177
Epoch 1/1 - Batch 3940/6331:  Discriminator Loss: 0.4044 Generator Loss: 2.7060
Epoch 1/1 - Batch 3950/6331:  Discriminator Loss: 0.3896 Generator Loss: 3.0920
Epoch 1/1 - Batch 3960/6331:  Discriminator Loss: 0.3981 Generator Loss: 3.4980
Epoch 1/1 - Batch 3970/6331:  Discriminator Loss: 0.3981 Generator Loss: 3.3782
Epoch 1/1 - Batch 3980/6331:  Discriminator Loss: 0.3959 Generator Loss: 3.1974
Epoch 1/1 - Batch 3990/6331:  Discriminator Loss: 0.3980 Generator Loss: 3.1232
Epoch 1/1 - Batch 4000/6331:  Discriminator Loss: 0.4012 Generator Loss: 2.7888
Epoch 1/1 - Batch 4010/6331:  Discriminator Loss: 0.3989 Generator Loss: 2.9329
Epoch 1/1 - Batch 4020/6331:  Discriminator Loss: 0.4232 Generator Loss: 2.5623
Epoch 1/1 - Batch 4030/6331:  Discriminator Loss: 0.4088 Generator Loss: 2.6077
Epoch 1/1 - Batch 4040/6331:  Discriminator Loss: 0.4248 Generator Loss: 2.5013
Epoch 1/1 - Batch 4050/6331:  Discriminator Loss: 0.4038 Generator Loss: 2.6792
Epoch 1/1 - Batch 4060/6331:  Discriminator Loss: 0.3894 Generator Loss: 2.9162
Epoch 1/1 - Batch 4070/6331:  Discriminator Loss: 0.4045 Generator Loss: 2.7023
Epoch 1/1 - Batch 4080/6331:  Discriminator Loss: 0.3977 Generator Loss: 3.1429
Epoch 1/1 - Batch 4090/6331:  Discriminator Loss: 0.4561 Generator Loss: 4.2353
Epoch 1/1 - Batch 4100/6331:  Discriminator Loss: 0.3963 Generator Loss: 3.1973
Epoch 1/1 - Batch 4110/6331:  Discriminator Loss: 0.4138 Generator Loss: 3.6122
Epoch 1/1 - Batch 4120/6331:  Discriminator Loss: 0.4013 Generator Loss: 3.4239
Epoch 1/1 - Batch 4130/6331:  Discriminator Loss: 0.3967 Generator Loss: 3.0473
Epoch 1/1 - Batch 4140/6331:  Discriminator Loss: 0.4073 Generator Loss: 3.2924
Epoch 1/1 - Batch 4150/6331:  Discriminator Loss: 0.3992 Generator Loss: 3.0994
Epoch 1/1 - Batch 4160/6331:  Discriminator Loss: 0.4014 Generator Loss: 3.4383
Epoch 1/1 - Batch 4170/6331:  Discriminator Loss: 0.3864 Generator Loss: 3.4167
Epoch 1/1 - Batch 4180/6331:  Discriminator Loss: 0.4061 Generator Loss: 3.3316
Epoch 1/1 - Batch 4190/6331:  Discriminator Loss: 0.3996 Generator Loss: 3.4701
Epoch 1/1 - Batch 4200/6331:  Discriminator Loss: 0.4737 Generator Loss: 4.3672
Epoch 1/1 - Batch 4210/6331:  Discriminator Loss: 0.4036 Generator Loss: 3.3668
Epoch 1/1 - Batch 4220/6331:  Discriminator Loss: 0.4124 Generator Loss: 3.8717
Epoch 1/1 - Batch 4230/6331:  Discriminator Loss: 0.4079 Generator Loss: 3.4356
Epoch 1/1 - Batch 4240/6331:  Discriminator Loss: 0.4073 Generator Loss: 3.5335
Epoch 1/1 - Batch 4250/6331:  Discriminator Loss: 0.4042 Generator Loss: 2.7507
Epoch 1/1 - Batch 4260/6331:  Discriminator Loss: 0.4233 Generator Loss: 2.4937
Epoch 1/1 - Batch 4270/6331:  Discriminator Loss: 0.4072 Generator Loss: 2.6900
Epoch 1/1 - Batch 4280/6331:  Discriminator Loss: 0.3888 Generator Loss: 3.0379
Epoch 1/1 - Batch 4290/6331:  Discriminator Loss: 0.4057 Generator Loss: 2.7864
Epoch 1/1 - Batch 4300/6331:  Discriminator Loss: 0.4095 Generator Loss: 2.6731
Epoch 1/1 - Batch 4310/6331:  Discriminator Loss: 0.4258 Generator Loss: 2.4015
Epoch 1/1 - Batch 4320/6331:  Discriminator Loss: 0.3959 Generator Loss: 2.8055
Epoch 1/1 - Batch 4330/6331:  Discriminator Loss: 0.3905 Generator Loss: 2.8551
Epoch 1/1 - Batch 4340/6331:  Discriminator Loss: 0.4208 Generator Loss: 2.4950
Epoch 1/1 - Batch 4350/6331:  Discriminator Loss: 0.3915 Generator Loss: 2.9920
Epoch 1/1 - Batch 4360/6331:  Discriminator Loss: 0.3860 Generator Loss: 3.2043
Epoch 1/1 - Batch 4370/6331:  Discriminator Loss: 0.4077 Generator Loss: 2.6302
Epoch 1/1 - Batch 4380/6331:  Discriminator Loss: 0.4098 Generator Loss: 2.6768
Epoch 1/1 - Batch 4390/6331:  Discriminator Loss: 0.4194 Generator Loss: 2.5768
Epoch 1/1 - Batch 4400/6331:  Discriminator Loss: 0.3991 Generator Loss: 3.0423
Epoch 1/1 - Batch 4410/6331:  Discriminator Loss: 0.4010 Generator Loss: 2.7398
Epoch 1/1 - Batch 4420/6331:  Discriminator Loss: 0.4190 Generator Loss: 2.5679
Epoch 1/1 - Batch 4430/6331:  Discriminator Loss: 0.3995 Generator Loss: 3.2963
Epoch 1/1 - Batch 4440/6331:  Discriminator Loss: 0.4001 Generator Loss: 2.9654
Epoch 1/1 - Batch 4450/6331:  Discriminator Loss: 0.4044 Generator Loss: 2.6589
Epoch 1/1 - Batch 4460/6331:  Discriminator Loss: 0.4012 Generator Loss: 2.8341
Epoch 1/1 - Batch 4470/6331:  Discriminator Loss: 0.4152 Generator Loss: 2.5286
Epoch 1/1 - Batch 4480/6331:  Discriminator Loss: 0.4153 Generator Loss: 2.5635
Epoch 1/1 - Batch 4490/6331:  Discriminator Loss: 0.3979 Generator Loss: 2.9824
Epoch 1/1 - Batch 4500/6331:  Discriminator Loss: 0.4217 Generator Loss: 3.8686
Epoch 1/1 - Batch 4510/6331:  Discriminator Loss: 0.3947 Generator Loss: 3.4979
Epoch 1/1 - Batch 4520/6331:  Discriminator Loss: 0.3985 Generator Loss: 2.7970
Epoch 1/1 - Batch 4530/6331:  Discriminator Loss: 0.3961 Generator Loss: 3.4912
Epoch 1/1 - Batch 4540/6331:  Discriminator Loss: 0.4442 Generator Loss: 4.3819
Epoch 1/1 - Batch 4550/6331:  Discriminator Loss: 0.3993 Generator Loss: 2.8891
Epoch 1/1 - Batch 4560/6331:  Discriminator Loss: 0.4284 Generator Loss: 3.8824
Epoch 1/1 - Batch 4570/6331:  Discriminator Loss: 0.3959 Generator Loss: 3.2899
Epoch 1/1 - Batch 4580/6331:  Discriminator Loss: 0.3840 Generator Loss: 3.2925
Epoch 1/1 - Batch 4590/6331:  Discriminator Loss: 0.3851 Generator Loss: 3.2387
Epoch 1/1 - Batch 4600/6331:  Discriminator Loss: 0.4123 Generator Loss: 3.4548
Epoch 1/1 - Batch 4610/6331:  Discriminator Loss: 0.4321 Generator Loss: 4.1654
Epoch 1/1 - Batch 4620/6331:  Discriminator Loss: 0.3958 Generator Loss: 3.3487
Epoch 1/1 - Batch 4630/6331:  Discriminator Loss: 0.3966 Generator Loss: 2.8489
Epoch 1/1 - Batch 4640/6331:  Discriminator Loss: 0.3928 Generator Loss: 3.1141
Epoch 1/1 - Batch 4650/6331:  Discriminator Loss: 0.4198 Generator Loss: 3.9728
Epoch 1/1 - Batch 4660/6331:  Discriminator Loss: 0.3913 Generator Loss: 3.3176
Epoch 1/1 - Batch 4670/6331:  Discriminator Loss: 0.3981 Generator Loss: 3.0431
Epoch 1/1 - Batch 4680/6331:  Discriminator Loss: 0.3982 Generator Loss: 3.3760
Epoch 1/1 - Batch 4690/6331:  Discriminator Loss: 0.3996 Generator Loss: 2.7803
Epoch 1/1 - Batch 4700/6331:  Discriminator Loss: 0.3991 Generator Loss: 2.7430
Epoch 1/1 - Batch 4710/6331:  Discriminator Loss: 0.4032 Generator Loss: 2.6858
Epoch 1/1 - Batch 4720/6331:  Discriminator Loss: 0.3949 Generator Loss: 3.0382
Epoch 1/1 - Batch 4730/6331:  Discriminator Loss: 0.3968 Generator Loss: 2.8443
Epoch 1/1 - Batch 4740/6331:  Discriminator Loss: 0.4291 Generator Loss: 3.9355
Epoch 1/1 - Batch 4750/6331:  Discriminator Loss: 0.3984 Generator Loss: 3.4607
Epoch 1/1 - Batch 4760/6331:  Discriminator Loss: 0.4015 Generator Loss: 2.8135
Epoch 1/1 - Batch 4770/6331:  Discriminator Loss: 0.4023 Generator Loss: 2.7652
Epoch 1/1 - Batch 4780/6331:  Discriminator Loss: 0.4057 Generator Loss: 2.7042
Epoch 1/1 - Batch 4790/6331:  Discriminator Loss: 0.4078 Generator Loss: 2.6935
Epoch 1/1 - Batch 4800/6331:  Discriminator Loss: 0.3972 Generator Loss: 3.3678
Epoch 1/1 - Batch 4810/6331:  Discriminator Loss: 0.4049 Generator Loss: 3.3258
Epoch 1/1 - Batch 4820/6331:  Discriminator Loss: 0.3951 Generator Loss: 3.0509
Epoch 1/1 - Batch 4830/6331:  Discriminator Loss: 0.4154 Generator Loss: 2.5578
Epoch 1/1 - Batch 4840/6331:  Discriminator Loss: 0.4198 Generator Loss: 2.6831
Epoch 1/1 - Batch 4850/6331:  Discriminator Loss: 0.4055 Generator Loss: 2.6634
Epoch 1/1 - Batch 4860/6331:  Discriminator Loss: 0.4046 Generator Loss: 2.6701
Epoch 1/1 - Batch 4870/6331:  Discriminator Loss: 0.4281 Generator Loss: 2.4234
Epoch 1/1 - Batch 4880/6331:  Discriminator Loss: 0.4034 Generator Loss: 2.8317
Epoch 1/1 - Batch 4890/6331:  Discriminator Loss: 0.4031 Generator Loss: 2.6832
Epoch 1/1 - Batch 4900/6331:  Discriminator Loss: 0.3991 Generator Loss: 2.8168
Epoch 1/1 - Batch 4910/6331:  Discriminator Loss: 0.3992 Generator Loss: 2.7802
Epoch 1/1 - Batch 4920/6331:  Discriminator Loss: 0.3968 Generator Loss: 2.8762
Epoch 1/1 - Batch 4930/6331:  Discriminator Loss: 0.3988 Generator Loss: 3.2811
Epoch 1/1 - Batch 4940/6331:  Discriminator Loss: 0.4150 Generator Loss: 3.6949
Epoch 1/1 - Batch 4950/6331:  Discriminator Loss: 0.3992 Generator Loss: 2.8716
Epoch 1/1 - Batch 4960/6331:  Discriminator Loss: 0.4222 Generator Loss: 3.6182
Epoch 1/1 - Batch 4970/6331:  Discriminator Loss: 0.3973 Generator Loss: 3.0417
Epoch 1/1 - Batch 4980/6331:  Discriminator Loss: 0.3968 Generator Loss: 2.8226
Epoch 1/1 - Batch 4990/6331:  Discriminator Loss: 0.3967 Generator Loss: 3.2124
Epoch 1/1 - Batch 5000/6331:  Discriminator Loss: 0.3945 Generator Loss: 3.4044
Epoch 1/1 - Batch 5010/6331:  Discriminator Loss: 0.3953 Generator Loss: 3.0318
Epoch 1/1 - Batch 5020/6331:  Discriminator Loss: 0.4036 Generator Loss: 2.8507
Epoch 1/1 - Batch 5030/6331:  Discriminator Loss: 0.4147 Generator Loss: 2.5571
Epoch 1/1 - Batch 5040/6331:  Discriminator Loss: 0.3912 Generator Loss: 3.0489
Epoch 1/1 - Batch 5050/6331:  Discriminator Loss: 0.4030 Generator Loss: 2.6865
Epoch 1/1 - Batch 5060/6331:  Discriminator Loss: 0.4113 Generator Loss: 3.7370
Epoch 1/1 - Batch 5070/6331:  Discriminator Loss: 0.4044 Generator Loss: 2.8499
Epoch 1/1 - Batch 5080/6331:  Discriminator Loss: 0.4044 Generator Loss: 2.7175
Epoch 1/1 - Batch 5090/6331:  Discriminator Loss: 0.3932 Generator Loss: 3.3735
Epoch 1/1 - Batch 5100/6331:  Discriminator Loss: 0.3890 Generator Loss: 3.5086
Epoch 1/1 - Batch 5110/6331:  Discriminator Loss: 0.4088 Generator Loss: 2.5752
Epoch 1/1 - Batch 5120/6331:  Discriminator Loss: 0.4048 Generator Loss: 3.4649
Epoch 1/1 - Batch 5130/6331:  Discriminator Loss: 0.4074 Generator Loss: 3.4335
Epoch 1/1 - Batch 5140/6331:  Discriminator Loss: 0.4117 Generator Loss: 2.5948
Epoch 1/1 - Batch 5150/6331:  Discriminator Loss: 0.4145 Generator Loss: 2.5348
Epoch 1/1 - Batch 5160/6331:  Discriminator Loss: 0.4085 Generator Loss: 2.5916
Epoch 1/1 - Batch 5170/6331:  Discriminator Loss: 0.3992 Generator Loss: 2.8356
Epoch 1/1 - Batch 5180/6331:  Discriminator Loss: 0.4123 Generator Loss: 2.6654
Epoch 1/1 - Batch 5190/6331:  Discriminator Loss: 0.3959 Generator Loss: 3.0006
Epoch 1/1 - Batch 5200/6331:  Discriminator Loss: 0.4105 Generator Loss: 3.5656
Epoch 1/1 - Batch 5210/6331:  Discriminator Loss: 0.4012 Generator Loss: 2.9900
Epoch 1/1 - Batch 5220/6331:  Discriminator Loss: 0.3847 Generator Loss: 3.5394
Epoch 1/1 - Batch 5230/6331:  Discriminator Loss: 0.4000 Generator Loss: 2.7788
Epoch 1/1 - Batch 5240/6331:  Discriminator Loss: 0.4052 Generator Loss: 2.6970
Epoch 1/1 - Batch 5250/6331:  Discriminator Loss: 0.3879 Generator Loss: 3.0477
Epoch 1/1 - Batch 5260/6331:  Discriminator Loss: 0.3956 Generator Loss: 3.1324
Epoch 1/1 - Batch 5270/6331:  Discriminator Loss: 0.3962 Generator Loss: 3.3003
Epoch 1/1 - Batch 5280/6331:  Discriminator Loss: 0.3936 Generator Loss: 3.3748
Epoch 1/1 - Batch 5290/6331:  Discriminator Loss: 0.4024 Generator Loss: 3.4679
Epoch 1/1 - Batch 5300/6331:  Discriminator Loss: 0.3994 Generator Loss: 2.9178
Epoch 1/1 - Batch 5310/6331:  Discriminator Loss: 0.3961 Generator Loss: 2.8438
Epoch 1/1 - Batch 5320/6331:  Discriminator Loss: 0.3848 Generator Loss: 3.2280
Epoch 1/1 - Batch 5330/6331:  Discriminator Loss: 0.3956 Generator Loss: 2.8154
Epoch 1/1 - Batch 5340/6331:  Discriminator Loss: 0.3955 Generator Loss: 3.0965
Epoch 1/1 - Batch 5350/6331:  Discriminator Loss: 0.3995 Generator Loss: 2.9761
Epoch 1/1 - Batch 5360/6331:  Discriminator Loss: 0.3978 Generator Loss: 3.1226
Epoch 1/1 - Batch 5370/6331:  Discriminator Loss: 0.4026 Generator Loss: 3.6097
Epoch 1/1 - Batch 5380/6331:  Discriminator Loss: 0.4069 Generator Loss: 2.9773
Epoch 1/1 - Batch 5390/6331:  Discriminator Loss: 0.3883 Generator Loss: 3.4059
Epoch 1/1 - Batch 5400/6331:  Discriminator Loss: 0.3886 Generator Loss: 3.1514
Epoch 1/1 - Batch 5410/6331:  Discriminator Loss: 0.3931 Generator Loss: 3.1651
Epoch 1/1 - Batch 5420/6331:  Discriminator Loss: 0.3964 Generator Loss: 2.8452
Epoch 1/1 - Batch 5430/6331:  Discriminator Loss: 0.4125 Generator Loss: 2.5671
Epoch 1/1 - Batch 5440/6331:  Discriminator Loss: 0.4085 Generator Loss: 2.6698
Epoch 1/1 - Batch 5450/6331:  Discriminator Loss: 0.4111 Generator Loss: 2.6704
Epoch 1/1 - Batch 5460/6331:  Discriminator Loss: 0.4088 Generator Loss: 2.6624
Epoch 1/1 - Batch 5470/6331:  Discriminator Loss: 0.3981 Generator Loss: 2.8899
Epoch 1/1 - Batch 5480/6331:  Discriminator Loss: 0.4015 Generator Loss: 2.6961
Epoch 1/1 - Batch 5490/6331:  Discriminator Loss: 0.4006 Generator Loss: 2.7339
Epoch 1/1 - Batch 5500/6331:  Discriminator Loss: 0.4093 Generator Loss: 2.6560
Epoch 1/1 - Batch 5510/6331:  Discriminator Loss: 0.3880 Generator Loss: 2.9604
Epoch 1/1 - Batch 5520/6331:  Discriminator Loss: 0.4000 Generator Loss: 3.2371
Epoch 1/1 - Batch 5530/6331:  Discriminator Loss: 0.4099 Generator Loss: 2.6262
Epoch 1/1 - Batch 5540/6331:  Discriminator Loss: 0.4320 Generator Loss: 2.5319
Epoch 1/1 - Batch 5550/6331:  Discriminator Loss: 0.4079 Generator Loss: 2.6372
Epoch 1/1 - Batch 5560/6331:  Discriminator Loss: 0.3966 Generator Loss: 2.8821
Epoch 1/1 - Batch 5570/6331:  Discriminator Loss: 0.3939 Generator Loss: 3.4680
Epoch 1/1 - Batch 5580/6331:  Discriminator Loss: 0.4065 Generator Loss: 3.6328
Epoch 1/1 - Batch 5590/6331:  Discriminator Loss: 0.3944 Generator Loss: 3.1023
Epoch 1/1 - Batch 5600/6331:  Discriminator Loss: 0.4005 Generator Loss: 3.0211
Epoch 1/1 - Batch 5610/6331:  Discriminator Loss: 0.4006 Generator Loss: 3.0206
Epoch 1/1 - Batch 5620/6331:  Discriminator Loss: 0.3967 Generator Loss: 2.9551
Epoch 1/1 - Batch 5630/6331:  Discriminator Loss: 0.4022 Generator Loss: 3.2194
Epoch 1/1 - Batch 5640/6331:  Discriminator Loss: 0.3962 Generator Loss: 2.9876
Epoch 1/1 - Batch 5650/6331:  Discriminator Loss: 0.4049 Generator Loss: 2.6793
Epoch 1/1 - Batch 5660/6331:  Discriminator Loss: 0.4110 Generator Loss: 2.6806
Epoch 1/1 - Batch 5670/6331:  Discriminator Loss: 0.3985 Generator Loss: 2.7306
Epoch 1/1 - Batch 5680/6331:  Discriminator Loss: 0.3990 Generator Loss: 2.7429
Epoch 1/1 - Batch 5690/6331:  Discriminator Loss: 0.3983 Generator Loss: 3.5474
Epoch 1/1 - Batch 5700/6331:  Discriminator Loss: 0.4011 Generator Loss: 3.5982
Epoch 1/1 - Batch 5710/6331:  Discriminator Loss: 0.3917 Generator Loss: 3.1099
Epoch 1/1 - Batch 5720/6331:  Discriminator Loss: 0.4015 Generator Loss: 2.7357
Epoch 1/1 - Batch 5730/6331:  Discriminator Loss: 0.4058 Generator Loss: 2.6718
Epoch 1/1 - Batch 5740/6331:  Discriminator Loss: 0.4005 Generator Loss: 2.7602
Epoch 1/1 - Batch 5750/6331:  Discriminator Loss: 0.3881 Generator Loss: 3.2940
Epoch 1/1 - Batch 5760/6331:  Discriminator Loss: 0.3882 Generator Loss: 3.2012
Epoch 1/1 - Batch 5770/6331:  Discriminator Loss: 0.3924 Generator Loss: 2.9196
Epoch 1/1 - Batch 5780/6331:  Discriminator Loss: 0.3941 Generator Loss: 2.8674
Epoch 1/1 - Batch 5790/6331:  Discriminator Loss: 0.3977 Generator Loss: 3.3338
Epoch 1/1 - Batch 5800/6331:  Discriminator Loss: 0.4289 Generator Loss: 3.8685
Epoch 1/1 - Batch 5810/6331:  Discriminator Loss: 0.3994 Generator Loss: 2.7843
Epoch 1/1 - Batch 5820/6331:  Discriminator Loss: 0.3995 Generator Loss: 2.8572
Epoch 1/1 - Batch 5830/6331:  Discriminator Loss: 0.4069 Generator Loss: 2.6849
Epoch 1/1 - Batch 5840/6331:  Discriminator Loss: 0.3983 Generator Loss: 2.7245
Epoch 1/1 - Batch 5850/6331:  Discriminator Loss: 0.4073 Generator Loss: 2.7049
Epoch 1/1 - Batch 5860/6331:  Discriminator Loss: 0.3941 Generator Loss: 3.0084
Epoch 1/1 - Batch 5870/6331:  Discriminator Loss: 0.4058 Generator Loss: 2.6768
Epoch 1/1 - Batch 5880/6331:  Discriminator Loss: 0.3938 Generator Loss: 2.9127
Epoch 1/1 - Batch 5890/6331:  Discriminator Loss: 0.3972 Generator Loss: 2.8662
Epoch 1/1 - Batch 5900/6331:  Discriminator Loss: 0.4080 Generator Loss: 2.6705
Epoch 1/1 - Batch 5910/6331:  Discriminator Loss: 0.4104 Generator Loss: 2.6294
Epoch 1/1 - Batch 5920/6331:  Discriminator Loss: 0.3879 Generator Loss: 2.9314
Epoch 1/1 - Batch 5930/6331:  Discriminator Loss: 0.3935 Generator Loss: 3.0093
Epoch 1/1 - Batch 5940/6331:  Discriminator Loss: 0.4002 Generator Loss: 3.2847
Epoch 1/1 - Batch 5950/6331:  Discriminator Loss: 0.3914 Generator Loss: 3.2707
Epoch 1/1 - Batch 5960/6331:  Discriminator Loss: 0.4072 Generator Loss: 3.0510
Epoch 1/1 - Batch 5970/6331:  Discriminator Loss: 0.3858 Generator Loss: 3.1987
Epoch 1/1 - Batch 5980/6331:  Discriminator Loss: 0.3949 Generator Loss: 2.8978
Epoch 1/1 - Batch 5990/6331:  Discriminator Loss: 0.3991 Generator Loss: 2.8481
Epoch 1/1 - Batch 6000/6331:  Discriminator Loss: 0.3959 Generator Loss: 2.8758
Epoch 1/1 - Batch 6010/6331:  Discriminator Loss: 0.3990 Generator Loss: 3.2364
Epoch 1/1 - Batch 6020/6331:  Discriminator Loss: 0.3936 Generator Loss: 2.8822
Epoch 1/1 - Batch 6030/6331:  Discriminator Loss: 0.4305 Generator Loss: 2.3522
Epoch 1/1 - Batch 6040/6331:  Discriminator Loss: 0.4091 Generator Loss: 2.5893
Epoch 1/1 - Batch 6050/6331:  Discriminator Loss: 0.3928 Generator Loss: 3.4654
Epoch 1/1 - Batch 6060/6331:  Discriminator Loss: 0.4090 Generator Loss: 2.7796
Epoch 1/1 - Batch 6070/6331:  Discriminator Loss: 0.4039 Generator Loss: 2.9017
Epoch 1/1 - Batch 6080/6331:  Discriminator Loss: 0.3848 Generator Loss: 3.5858
Epoch 1/1 - Batch 6090/6331:  Discriminator Loss: 0.4227 Generator Loss: 2.5181
Epoch 1/1 - Batch 6100/6331:  Discriminator Loss: 0.4011 Generator Loss: 2.8014
Epoch 1/1 - Batch 6110/6331:  Discriminator Loss: 0.4106 Generator Loss: 2.5564
Epoch 1/1 - Batch 6120/6331:  Discriminator Loss: 0.3940 Generator Loss: 2.9047
Epoch 1/1 - Batch 6130/6331:  Discriminator Loss: 0.3953 Generator Loss: 2.8626
Epoch 1/1 - Batch 6140/6331:  Discriminator Loss: 0.3994 Generator Loss: 2.8088
Epoch 1/1 - Batch 6150/6331:  Discriminator Loss: 0.4120 Generator Loss: 3.6791
Epoch 1/1 - Batch 6160/6331:  Discriminator Loss: 0.4222 Generator Loss: 4.0430
Epoch 1/1 - Batch 6170/6331:  Discriminator Loss: 0.3984 Generator Loss: 2.7972
Epoch 1/1 - Batch 6180/6331:  Discriminator Loss: 0.3864 Generator Loss: 3.0843
Epoch 1/1 - Batch 6190/6331:  Discriminator Loss: 0.4029 Generator Loss: 2.8334
Epoch 1/1 - Batch 6200/6331:  Discriminator Loss: 0.3947 Generator Loss: 2.9232
Epoch 1/1 - Batch 6210/6331:  Discriminator Loss: 0.3932 Generator Loss: 3.4613
Epoch 1/1 - Batch 6220/6331:  Discriminator Loss: 0.4000 Generator Loss: 2.8039
Epoch 1/1 - Batch 6230/6331:  Discriminator Loss: 0.3941 Generator Loss: 3.0444
Epoch 1/1 - Batch 6240/6331:  Discriminator Loss: 0.3970 Generator Loss: 3.0100
Epoch 1/1 - Batch 6250/6331:  Discriminator Loss: 0.3875 Generator Loss: 3.0541
Epoch 1/1 - Batch 6260/6331:  Discriminator Loss: 0.3887 Generator Loss: 3.4022
Epoch 1/1 - Batch 6270/6331:  Discriminator Loss: 0.3827 Generator Loss: 3.3954
Epoch 1/1 - Batch 6280/6331:  Discriminator Loss: 0.3947 Generator Loss: 2.9852
Epoch 1/1 - Batch 6290/6331:  Discriminator Loss: 0.4017 Generator Loss: 3.0228
Epoch 1/1 - Batch 6300/6331:  Discriminator Loss: 0.4014 Generator Loss: 3.4029
Epoch 1/1 - Batch 6310/6331:  Discriminator Loss: 0.3924 Generator Loss: 2.9815
Epoch 1/1 - Batch 6320/6331:  Discriminator Loss: 0.4056 Generator Loss: 2.7312
Epoch 1/1 - Batch 6330/6331:  Discriminator Loss: 0.4099 Generator Loss: 2.6146

Submitting This Project

When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_face_generation.ipynb" and save it as a HTML file under "File" -> "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.

In [ ]: